public static Fix64 Distance(Fix64Vector2 a, Fix64Vector2 b) { Fix64 a2 = Fix64.FastAbs(a.X - b.X); Fix64 b2 = Fix64.FastAbs(a.Y - b.Y); return(Fix64.Sqrt(a2 * a2 + b2 * b2)); }
public static Fix64Vector2 Rotate(Fix64Vector2 iA, Fix64 degrees) { degrees *= Fix64.DegreeToRad; Fix64Vector2 A = new Fix64Vector2(0, 0); A.X = (iA.X * Fix64.Cos(degrees) - iA.Y * Fix64.Sin(degrees)); A.Y = (iA.X * Fix64.Sin(degrees) + iA.Y * Fix64.Cos(degrees)); return(A); }
public static Fix64 Angle(Fix64Vector2 a, Fix64Vector2 b) { return(Fix64.Acos(Dot(a.Nomalize(), b.Nomalize()))); }
public static Fix64 Dot(Fix64Vector2 a, Fix64Vector2 b) { return((a.X * b.X) + (a.Y * b.Y)); }