static public Vector2D operator *(Vector2D A, double B) { Vector2D temp = new Vector2D(); temp.x = A.x * B; temp.y = A.y * B; return temp; }
static public Vector2D operator *(float B, Vector2D A) { Vector2D temp = new Vector2D(); temp.x = A.x * (double)B; temp.y = A.y * (double)B; return temp; }
static public Vector2D operator *(Vector2D A, Vector2D B) { Vector2D temp = new Vector2D(); temp.x = A.x * B.x; temp.y = A.y * B.y; return temp; }
public double Cross(Vector2D B) { return x * B.y - y * B.x; }
public double GetDeltaAngle(Vector2D A) { return (double)GetDeltaAngle(GetAngle0To2PI(), A.GetAngle0To2PI()); }
public double Dot(Vector2D B) { return (x * B.x + y * B.y); }
public static double GetDistanceBetweenSquared(Vector2D A, Vector2D B) { return ((A.x - B.x) * (A.x - B.x) + (A.y - B.y) * (A.y - B.y)); }
public double GetSquaredDistanceTo(Vector2D Other) { return ((x - Other.x) * (x - Other.x) + (y - Other.y) * (y - Other.y)); }
public static double GetDistanceBetween(Vector2D A, Vector2D B) { return (double)System.Math.Sqrt(GetDistanceBetweenSquared(A, B)); }
public Vector2D GetPerpendicular() { Vector2D temp = new Vector2D(y, -x); return temp; }
// are they the same within the error value? public bool Equals(Vector2D OtherVector, double ErrorValue) { if ((x < OtherVector.x + ErrorValue && x > OtherVector.x - ErrorValue) && (y < OtherVector.y + ErrorValue && y > OtherVector.y - ErrorValue)) { return true; } return false; }
static public Vector2D operator /(double B, Vector2D A) { Vector2D temp = new Vector2D(); temp.x = A.x / B; temp.y = A.y / B; return temp; }
public void Line(Vector2D Start, Vector2D End, RGBA_Bytes color) { Line(Start.x, Start.y, End.x, End.y, color); }