private static float ChangeAngleIfRotatingLeft(Vector2D lastPosVector, Vector2D newPosVector) { var angle = lastPosVector.AngleBetweenVector(newPosVector); var cross = Vector3D.Cross(lastPosVector, newPosVector); var dot = Vector3D.Dot(cross, new Vector3D(0, 0, 1)); return(dot < 0 ? -angle : angle); }
private static float ChangeAngleIfRotatingLeft(Vector2D lastPosVector, Vector2D newPosVector) { var angle = lastPosVector.AngleBetweenVector(newPosVector); var cross = Vector3D.Cross(lastPosVector, newPosVector); var dot = Vector3D.Dot(cross, new Vector3D(0, 0, 1)); return dot < 0 ? -angle : angle; }