我有一个简单的 3D 立方体,可以使用以下代码进行旋转:
void mui3D_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
RotateTransform3D rotation = new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(0, 1, 0), 0), mui.Model.Bounds.Location);
DoubleAnimation rotateAnim = new DoubleAnimation(0, 130d TimeSpan.FromMilliseconds(3000));
rotateAnim.Completed += new EventHandler(rotateAnim_Completed);
mui.Transform = rotation;
rotation.Rotation.BeginAnimation(AxisAngleRotation3D.AngleProperty, rotateAnim);
}
每次执行时,此代码使用动画围绕 Y 轴从 0 到 130 度的角度旋转立方体。
但是,我想“累积”应用旋转,以便考虑任何先前的旋转,并且立方体从完成前一个旋转的角度开始每次旋转。
例如:动画构造函数不需要角度的“from”和“to”值,而是简单地根据当前旋转角度将立方体再旋转 130 度。
我可以轻松地使用包含当前角度的成员变量,将其传递给动画,然后在动画完成时更新它。但我想知道是否有使用 WPF 的标准方法来实现这一点。