public static double Distance(Vector2D coordinate1, Vector2D coordinate2) { double distance = 0.0; var distanceCord = coordinate2 - coordinate1; var a = Math.Pow(Math.Sin(ToRadian(distanceCord.X) / 2), 2) + Math.Cos(ToRadian(coordinate1.X)) * Math.Cos(ToRadian(coordinate2.X)) * Math.Pow(Math.Sin(ToRadian(distanceCord.Y) / 2), 2); var c = 2 * Math.Atan2(Math.Pow(a, 0.5), Math.Pow(1 - a, 0.5)); var d = R_TH_BKK * c; distance = d; return distance; }
//project this vector on to v, return signed magnatude public Vector2D Project(Vector2D v, out double mag) { double thisDotV = this * v; mag = thisDotV; return v * thisDotV; }
//negative public static Vector2D operator -(Vector2D R) { Vector2D temp = new Vector2D(-R.X, -R.Y); return temp; }
//project this vector on to v public Vector2D Project(Vector2D v) { double thisDotV = this * v; return v * thisDotV; }