【问题标题】:Is it possible to rotate Viewport3D around any of the three axes?是否可以围绕三个轴中的任何一个旋转 Viewport3D?
【发布时间】:2018-02-02 23:13:54
【问题描述】:

我知道ModelVisual3D 可以通过AxisAngleRotation3D 围绕任何轴旋转,但是是否可以对包含 9 个ModelVisual3Ds 的 Viewport3D 执行相同操作,因此它们可以一起旋转,就好像它们是一个对象一样..例如,我可以使用ModelVisual3D

<Viewport3D.Triggers>
       <EventTrigger RoutedEvent="Viewport3D.Loaded">
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation 
                  Storyboard.TargetName="myVerticalRotation"
                  Storyboard.TargetProperty="Angle"
                  From="0" To="360" Duration="0:0:10"
                  RepeatBehavior="Forever" />
                            <DoubleAnimation 
                  Storyboard.TargetName="myHorizontalRotation"
                  Storyboard.TargetProperty="Angle"
                  From="0" To="360" Duration="0:0:9"
                  RepeatBehavior="Forever" />
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Viewport3D.Triggers>

但这假定Viewport3D 只包含一个ModelVisual3D

【问题讨论】:

    标签: wpf wpf-animation viewport3d


    【解决方案1】:

    是的,可以通过将所有 GeometryModel3D 对象包含在 ModelUIElement3D 内的 ModelUIElement3DContainerUIElement3D 内,然后我们可以在 ContainerUIElement3D.Transform 内定义 RotateTransform3D

     <ContainerUIElement3D>
                        <ModelUIElement3D>
                            <Model3DGroup>
                                <GeometryModel3D>...</GeometryModel3D>
                                <GeometryModel3D>...</GeometryModel3D>
                                <GeometryModel3D>...</GeometryModel3D>
                            </Model3DGroup>
                        </ModelUIElement3D>
                        <ContainerUIElement3D.Transform>
                          <Transform3DGroup>
                            <RotateTransform3D >
                                <RotateTransform3D.Rotation>
                                    <AxisAngleRotation3D  x:Name="myHorizontalRotation" Angle="142.884" Axis="0 1 0"/>
                                </RotateTransform3D.Rotation>
                            </RotateTransform3D>
                         </Transform3DGroup>
                       </ContainerUIElement3D.Transform>
                </ContainerUIElement3D>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-25
      • 2020-04-07
      • 1970-01-01
      • 1970-01-01
      • 2011-11-18
      相关资源
      最近更新 更多