WPF 3D对象不断旋转

时间:2015-07-15 06:43:23

标签: c# wpf xaml rotation transform

我正在使用SplineRotation3DKeyFrame连续旋转我的3D对象。 但这种行为有点奇怪: 1. Rotation3DAnimationUsingKeyFrames里面必须有两个SplineRotation3DKeyFrame,否则就不会有动画。 2.似乎旋转不连续。每个时期都会有一个突然的运动。

我想让它以某种速度旋转,例如每分钟30发。

有没有人可以给我一些如何设置动画代码的建议?

提前致谢。

这是我的代码(不包括3D数据)                           

             Storyboard.TargetName="World"
             Storyboard.TargetProperty="(ModelVisual3D.Transform).(Transform3DGroup.Children)[0].(RotateTransform3D.Rotation)"
            Duration="00:00:02"
            AutoReverse="False">

            <SplineRotation3DKeyFrame KeyTime="00:00:02">
                <SplineRotation3DKeyFrame.Value >
                    <AxisAngleRotation3D Angle="180" Axis="0,0,1"/>
                </SplineRotation3DKeyFrame.Value>
            </SplineRotation3DKeyFrame>
            <SplineRotation3DKeyFrame KeyTime="00:00:04">
                <SplineRotation3DKeyFrame.Value>
                    <AxisAngleRotation3D Angle="359" Axis="0,0,1"/>
                </SplineRotation3DKeyFrame.Value>
            </SplineRotation3DKeyFrame>
        </Rotation3DAnimationUsingKeyFrames>

    </Storyboard>
</UserControl.Resources>
<UserControl.Triggers>
    <EventTrigger RoutedEvent="FrameworkElement.Loaded">
        <BeginStoryboard Storyboard="{StaticResource RotateStoryboard}"/>
    </EventTrigger>
</UserControl.Triggers>


<Grid>
    <Viewport3D ClipToBounds="True" Margin="21,15,10,28">
        <Viewport3D.Camera>
            <OrthographicCamera FarPlaneDistance="291.04190202230194" LookDirection="0,-30,0" NearPlaneDistance="0.1" Position="0,30,0" UpDirection="0,0,-1" Width="50"/>
        </Viewport3D.Camera>
        <ModelVisual3D x:Name="World">

    <ModelVisual3D.Transform> <!-- tinger -->
        <Transform3DGroup>
            <RotateTransform3D/>
        </Transform3DGroup>
    </ModelVisual3D.Transform>

0 个答案:

没有答案