public static double GetDotBetween(Vec2d V1, Vec2d V2) { double len_prod = Vec2Utils.GetLenght(V1) * Vec2Utils.GetLenght(V2); if (double.IsNaN(len_prod)) { return(0); } return((V1.X * V2.X + V1.Y * V2.Y) / (len_prod)); }
public static Vec2d GetClampedVec2(Vec2d Vec, double Lenght) => (Vec2Utils.GetLenght(Vec) > Lenght) ? (Vec2Utils.GetUnitVec2(Vec) * Lenght) : (Vec.Clone() as Vec2d);
public static Vec2d GetUnitVec2(Vec2d Vec) => Vec / Vec2Utils.GetLenght(Vec);
public static double GetLenght(Vec2i Vec) => Vec2Utils.GetLenght(Vec.CloneAsVec2d());