private void ResetAnimation(object obj) { _timer.Stop(); _quaternionAxis = new QuaternionAxis(StartAxis.Position, StartAxis.QuaternionRotation, EndAxis.Position, EndAxis.QuaternionRotation); _eulerAxis = new EulerAxis(StartAxis.Position, StartAxis.Rotation, EndAxis.Position, EndAxis.Rotation); }
public Vector3 GetPositionInRange(float r, Vector3 center, QuaternionAxis quaternionAxis = QuaternionAxis.X) { switch (quaternionAxis) { case QuaternionAxis.X: return center + Quaternion * new Vector3((float)r, 0, 0); case QuaternionAxis.Y: return center + Quaternion * new Vector3(0, (float)r, 0); case QuaternionAxis.Z: return center + Quaternion * new Vector3(0, 0, (float)r); } return new Vector3(0, 0, 0); }
public MainViewModel() { _scale = 1.0; _rotation = new Vector(0, 0); StartAxis = new AxisDetails(new Vector3(-20, 0, 0), new Vector3(0, 0, 0)); EndAxis = new AxisDetails(new Vector3(20, 0, -10), new Vector3(0, 0, 0)); _quaternionAxis = new QuaternionAxis(StartAxis.Position, StartAxis.QuaternionRotation, EndAxis.Position, EndAxis.QuaternionRotation); _eulerAxis = new EulerAxis(StartAxis.Position, StartAxis.Rotation, EndAxis.Position, EndAxis.Rotation); _timer = new DispatcherTimer { Interval = new TimeSpan(0, 0, 0, 0, 10) }; _timer.Tick += _timer_Tick; AnimationLength = 7; FrameCount = 13; }