public static Vector2D operator *(float B, Vector2D A) { Vector2D temp = new Vector2D (); temp.x = A.x * (double)B; temp.y = A.y * (double)B; return temp; }
public static 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 static Vector2D operator *(Vector2D A, double B) { Vector2D temp = new Vector2D (); temp.x = A.x * B; temp.y = A.y * B; return temp; }
public double GetSquaredDistanceTo(Vector2D Other) { return ((x - Other.x) * (x - Other.x) + (y - Other.y) * (y - Other.y)); }
public double GetDeltaAngle(Vector2D A) { return (double)GetDeltaAngle (GetAngle0To2PI (), A.GetAngle0To2PI ()); }
public Vector2D GetPerpendicular() { Vector2D temp = new Vector2D (y, -x); return temp; }
public double Dot(Vector2D B) { return (x * B.x + y * B.y); }
// 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; }
public double Cross(Vector2D B) { return x * B.y - y * B.x; }
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 static double GetDistanceBetween(Vector2D A, Vector2D B) { return (double)System.Math.Sqrt (GetDistanceBetweenSquared (A, B)); }
public static Vector2D operator /(double B, Vector2D A) { Vector2D temp = new Vector2D (); temp.x = A.x / B; temp.y = A.y / B; return temp; }
/// <summary> /// /// </summary> /// <param name="Start"> /// A <see cref="Vector2D"/> /// </param> /// <param name="End"> /// A <see cref="Vector2D"/> /// </param> /// <param name="color"> /// A <see cref="RgbaBytes"/> /// </param> public void Line(Vector2D Start, Vector2D End, RgbaBytes color) { Line (Start.x, Start.y, End.x, End.y, color); }