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ではありません。