public static Vector2D MaxLimit(Vector2D vector, float limit) { if (vector.Length() > limit) { var factor = vector.Length() / limit; vector = vector / factor; } return vector; }
public static Vector2D ToLimit(Vector2D vector, float limit) { var factor = vector.Length() / limit; vector = vector / factor; return vector; }
public static Vector2D Vec2DNormalize(Vector2D v) { Vector2D vec = new Vector2D(v.X, v.Y); double vector_length = vec.Length(); if (vector_length > double.Epsilon) { vec.X /= vector_length; vec.Y /= vector_length; } return vec; }