コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 public static Fix64 Angle(Fix64Vector2 a, Fix64Vector2 b)
 {
     return(Fix64.Acos(Dot(a.Nomalize(), b.Nomalize())));
 }
コード例 #4
0
 public static Fix64 Dot(Fix64Vector2 a, Fix64Vector2 b)
 {
     return((a.X * b.X) + (a.Y * b.Y));
 }