多个3D对象的WPF动画,每个对象进行多次转换

时间:2009-07-29 20:51:19

标签: wpf animation 3d transform

我正在开发一个WPF 3D项目,我可以通过动画在场景中移动多个(1 - 20')ModelVisual3D对象。每个ModelVisual3D都有一个RotateTransform3D和一个TranslateTransform3D,每次移动都会应用它。每个ModelVisual3D对象彼此独立移动。

所以现在为了做到这一点,每次我想移动物体时,我都会旋转每个ModelVisual3D并为其旋转和平移变换运动设置双动画。然后在两个变换上调用BeginAnimation()(对于每个对象)。

这意味着,如果我有20个ModelVisual3D对象,我将最终在40个不同的变换对象上调用BeginAnimation()...每次我需要移动它们。

这表现不错,但似乎应该有更好的方法。有什么地方我可以将多个ModelVisual3D对象的多个转换组合成一个“转换组”对象,然后调用Begin吗?

另外,我查看了使用storyboard对象,但是我在C#中都是这样做的(这里的静态xaml很少,大​​部分UI是动态创建的)。故事板对象似乎只能用于单个ModelVisual3D对象。最好的情况是,我将使用我称之为BeginAnimation的20个故事板对象。

或者我正在做的最好的事情是什么?

1 个答案:

答案 0 :(得分:0)

您可以将Transform3DGroup中的RotateTransform3D和TranslateTransform3D存储起来。这应该会让你减少20'的BeiginAnimation电话。