Пример #1
0
 public static void SaveVec2dToFile(BinaryWriter bw, Vec2d Vec)
 {
     bw.Write(BitConverter.GetBytes(Vec.X));
     bw.Write(BitConverter.GetBytes(Vec.Y));
 }
Пример #2
0
 public static Vec2d GetDirectionVec2Toward(Vec2d Origin, Vec2d EndPoint) => Vec2Utils.GetUnitVec2(EndPoint - Origin);
Пример #3
0
 public static Vec2d GetClampedVec2(Vec2d Vec, double Lenght) => (Vec2Utils.GetLenght(Vec) > Lenght) ? (Vec2Utils.GetUnitVec2(Vec) * Lenght) : (Vec.Clone() as Vec2d);
Пример #4
0
 public static Vec2d GetRotatedByDeg(Vec2d Vec, double Deg) => Vec2Utils.GetRotatedByRad(Vec, (Deg * Math.PI) / 180);
Пример #5
0
 public static Vec2d GetUnitVec2(Vec2d Vec) => Vec / Vec2Utils.GetLenght(Vec);
Пример #6
0
 public static double GetAngleBetween_Deg(Vec2d V1, Vec2d V2) => (Vec2Utils.GetAngleBetween_Rad(V1, V2) * 180) / Math.PI;
Пример #7
0
 public static Vec2d GetRotatedByRad(Vec2d Vec, double Rad) => new Vec2d(Math.Round(Math.Cos(Rad) * Vec.X - Math.Sin(Rad) * Vec.Y, 3), Math.Round(Math.Sin(Rad) * Vec.X + Math.Cos(Rad) * Vec.Y, 3));
Пример #8
0
 public static double GetAngleBetween_Rad(Vec2d V1, Vec2d V2) => Math.Acos(Vec2Utils.GetDotBetween(V1, V2));
Пример #9
0
 public static double GetDistance(Vec2d Vec1, Vec2d Vec2) => Math.Sqrt(Vec2Utils.GetDistance_Squared(Vec1, Vec2));
Пример #10
0
 public static double GetLenght(Vec2d Vec) => Math.Sqrt(Vec2Utils.GetLenght_Squared(Vec));
Пример #11
0
 public static double GetDistance_Squared(Vec2d Vec1, Vec2d Vec2) => Math.Pow(Vec1.X - Vec2.X, 2) + Math.Pow(Vec1.Y - Vec2.Y, 2);
Пример #12
0
 public static double GetLenght_Squared(Vec2d Vec) => Math.Pow(Vec.X, 2) + Math.Pow(Vec.Y, 2);