feat: Basic Operation Methods

Vector2D.Invert
Vector2D.Add
Vector2D.Subtract
Vector2D.Multiply
Vector2D.Subdivide
This commit is contained in:
2024-01-24 12:10:28 +03:00
parent 1acecdf3ce
commit 83d8a03be3
2 changed files with 13 additions and 0 deletions

View File

@@ -28,6 +28,12 @@ public record Vector2D(float X, float Y)
public static float Distance(Vector2D from, Vector2D to) => Length(FromTo(from, to));
public static Vector2D Invert(Vector2D vector) => new(0f - vector.X, 0f - vector.Y);
public static Vector2D Add(Vector2D left, Vector2D right) => left + right;
public static Vector2D Subtract(Vector2D left, Vector2D right) => left - right;
public static Vector2D Multiply(Vector2D vector, float value) => vector * value;
public static Vector2D Subdivide(Vector2D vector, float value) => vector / value;
public static Vector2D Normalize(Vector2D vector) => vector / Length(vector);
public static Vector2D Reflect(Vector2D vector, Vector2D normal) => vector - 2f * Dot(vector, normal) * normal;
public static Vector2D FromTo(Vector2D from, Vector2D to) => to - from;