public bool Equals(Vector value) { return Equals(this, value); }
public static double Multiply(Vector vector1, Vector vector2) { return ((vector1._x * vector2._x) + (vector1._y * vector2._y)); }
public static Vector Subtract(Vector vector1, Vector vector2) { return new Vector(vector1._x - vector2._x, vector1._y - vector2._y); }
public static bool Equals(Vector vector1, Vector vector2) { return (vector1.X.Equals(vector2.X) && vector1.Y.Equals(vector2.Y)); }
public static Vector Multiply(double scalar, Vector vector) { return new Vector(vector._x * scalar, vector._y * scalar); }
public static Vector Divide(Vector vector, double scalar) { return (Vector)(vector * (1.0 / scalar)); }
public static double Determinant(Vector vector1, Vector vector2) { return ((vector1._x * vector2._y) - (vector1._y * vector2._x)); }
public static double CrossProduct(Vector vector1, Vector vector2) { return ((vector1._x * vector2._y) - (vector1._y * vector2._x)); }
public static double AngleBetween(Vector vector1, Vector vector2) { double y = (vector1._x * vector2._y) - (vector2._x * vector1._y); double x = (vector1._x * vector2._x) + (vector1._y * vector2._y); return (Math.Atan2(y, x) * 57.295779513082323); }
public static Vector Add(Vector vector1, Vector vector2) { return new Vector(vector1._x + vector2._x, vector1._y + vector2._y); }