1

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

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

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

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

此外,我查看了使用情节提要对象,但我都是在 C# 中完成的(这里很少使用静态 xaml,大部分 UI 都是动态创建的)。故事板对象似乎只能用于单个 ModelVisual3D 对象。所以最好的情况是,我会减少到 20 个故事板对象,我称之为 BeginAnimation。

还是我正在做的最好的事情?

4

1 回答 1

0

您可以将 RotateTransform3D 和 TranslateTransform3D 存储在Transform3DGroup中。这应该会让你减少到 20'ish BeiginAnimation 调用。

于 2009-07-29T21:07:55.210 回答