public static double Scalar(Vector2d a, Vector2d b) { return(a.x * b.x + a.y * b.y); }
/// <summary> /// Вычислить вектор отражения /// </summary> /// <param name="a">Падающий вектор</param> /// <param name="n">Вектор нормали отражения</param> /// <returns></returns> public static Vector2d Reflection(Vector2d a, Vector2d n) { return(a - 2 * n * Vector2d.Scalar(a, n) / Vector2d.Scalar(n, n)); }