Model3DGroup的3DRotation

时间:2011-08-09 14:09:03

标签: wpf 3d

我有一个带有变换的model3dgroup,看起来像这样,

<Transform3DGroup x:Key="B3OR34TR33">
                <TranslateTransform3D OffsetX="0"
                                      OffsetY="-1.5748"
                                      OffsetZ="-8.10376e-011" />
                <ScaleTransform3D ScaleX="1"
                                  ScaleY="0.750021"
                                  ScaleZ="1" />
                <RotateTransform3D>
                    <RotateTransform3D.Rotation>
                        <AxisAngleRotation3D Angle="90.0000025"
                                             Axis="1 0 0" />
                    </RotateTransform3D.Rotation>
                </RotateTransform3D>
                <TranslateTransform3D OffsetX="0"
                                      OffsetY="0.0259444"
                                      OffsetZ="5.51401" />
            </Transform3DGroup>

还有一个动画可以在加载时为model3dgroup设置动画。

<DoubleAnimationUsingKeyFrames
                                           BeginTime="0:0:0"
                                           Duration="0:0:0.9"
                                           Storyboard.TargetName="B3OR34"
                                           Storyboard.TargetProperty="(Model3D.Transform).(Transform3DGroup.Children)[3].(TranslateTransform3D.OffsetX)">
                <LinearDoubleKeyFrame KeyTime="0:0:0"
                                      Value="-38.50234985" />
                <LinearDoubleKeyFrame KeyTime="0:0:0.9"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames
                                           BeginTime="0:0:0"
                                           Duration="0:0:0.9"
                                           Storyboard.TargetName="B3OR34"
                                           Storyboard.TargetProperty="(Model3D.Transform).(Transform3DGroup.Children)[3].(TranslateTransform3D.OffsetY)">
                <LinearDoubleKeyFrame KeyTime="0:0:0"
                                      Value="0.02594435215" />
                <LinearDoubleKeyFrame KeyTime="0:0:0.9"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames
                                           BeginTime="0:0:0"
                                           Duration="0:0:0.9"
                                           Storyboard.TargetName="B3OR34"
                                           Storyboard.TargetProperty="(Model3D.Transform).(Transform3DGroup.Children)[3].(TranslateTransform3D.OffsetZ)">
                <LinearDoubleKeyFrame KeyTime="0:0:0"
                                      Value="5.514007568" />
                <LinearDoubleKeyFrame KeyTime="0:0:0.9"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>

model3dgroup是一个具有5个几何形状的立方体[top,bottom,front,back&amp;侧]。问题是当我应用一个行为来模拟model3dgroup时,旋转发生在geometrymodel3d之一的x轴中间。我应该在这里看一下围绕model3dgroup的中心进行旋转。

1 个答案:

答案 0 :(得分:0)

您可以使用CenterX / Y / Z属性设置RotateTransform3D的中心

在您的情况下,中心必须是您的应用翻译

            <RotateTransform3D CenterX="0"
                               CenterY="-1.5748"
                               CenterZ="-8.10376e-011" />