我正在尝试使用 WPF 为 3D 中的一些旋转设置动画,如果我手动触发它们(点击时)一切都很好,但如果我计算应该在 Viewport3D 上进行的运动,所有动画似乎同时消失。
计算运动的代码如下:
for(int i=0; i<40; i++){
foo(i);
}
看起来foo(int i)
像:
//compute axis, angle
AxisAngleRotation3D rotation = new AxisAngleRotation3D(axis, angle);
RotateTransform3D transform = new RotateTransform3D(rotation, new Point3D(0, 0, 0));
DoubleAnimation animation = new DoubleAnimation(0, angle, TimeSpan.FromMilliseconds(370));
rotation.BeginAnimation(AxisAngleRotation3D.AngleProperty, animation);
axis
和的计算angle
不是耗时的简单属性,所以我猜问题是所有动画都会触发下一帧,因为当当前帧“结束”时计算已经完成。
如何在代码(不是 XAML)中按顺序显示这些动画,而不是一次全部显示?
PS:一切都在 C# 中,没有 XAML。