Калькулятор векторов
Операции с векторами на плоскости (2D) и в пространстве (3D): сложение, вычитание, скалярное и векторное произведение, угол между векторами, проекция, модуль и нормирование.
Логика вычислений
Калькулятор выполняет операции над векторами в двух режимах: на плоскости (2D, вектор задаётся двумя координатами) и в пространстве (3D, добавляется третья координата). В обоих режимах доступен один набор операций — сложение, вычитание, скалярное и векторное произведение, угол между векторами, проекция, модуль и нормирование. Формулы операций одинаковы, отличается лишь число координат, поэтому ниже логика разобрана для 2D, а в блоке 3D показано, что в ней меняется. Векторное произведение определено только в пространстве.
a = (a_x; a_y) b = (b_x; b_y)
где:
- a, b — исходные векторы;
- a_x, a_y — координаты вектора a;
- b_x, b_y — координаты вектора b.
Режим 2D (плоскость)
Сложение и вычитание выполняются покоординатно:
a + b = (a_x + b_x; a_y + b_y) a − b = (a_x − b_x; a_y − b_y)
Скалярное произведение — сумма произведений одноимённых координат, его результат число:
a · b = a_x × b_x + a_y × b_y
Модуль (длина) вектора — корень из скалярного произведения вектора на самого себя:
‖a‖ = √(a_x² + a_y²)
где:
- ‖a‖ — модуль (длина) вектора a.
Угол между векторами находится через скалярное произведение и модули обоих векторов: сначала вычисляется косинус угла, затем сам угол. Результат выдаётся в градусах и радианах:
cos φ = (a · b) / (‖a‖ × ‖b‖) φ = arccos(cos φ) φ° = φ × 180 / π
где:
- φ — угол между векторами a и b, радианы;
- φ° — тот же угол в градусах;
- ‖b‖ — модуль вектора b.
Проекция вектора a на вектор b — это вектор вдоль b, длина которого зависит от того, насколько a совпадает по направлению с b. Сначала находится коэффициент, затем на него умножаются координаты b:
k = (a · b) / (b · b) proj_b a = k × b = (k × b_x; k × b_y)
где:
- k — скалярный коэффициент проекции;
- proj_b a — проекция вектора a на вектор b.
Нормирование даёт единичный вектор того же направления — каждая координата делится на модуль:
â = a / ‖a‖ = (a_x / ‖a‖; a_y / ‖a‖)
где:
- â — единичный вектор, сонаправленный с a (модуль равен 1).
Режим 3D (пространство)
В пространстве вектор задаётся тремя координатами, и во все формулы выше добавляется третья компонента. Сложение, вычитание, скалярное произведение, модуль, угол, проекция и нормирование считаются по тем же правилам, просто с учётом координаты z:
a = (a_x; a_y; a_z) a · b = a_x × b_x + a_y × b_y + a_z × b_z ‖a‖ = √(a_x² + a_y² + a_z²)
где:
- a_z, b_z — третьи координаты векторов a и b.
Дополнительно в 3D доступно векторное произведение — оно даёт вектор, перпендикулярный обоим исходным:
a × b = (a_y × b_z − a_z × b_y; a_z × b_x − a_x × b_z; a_x × b_y − a_y × b_x)
где:
- a × b — векторное произведение, вектор, перпендикулярный плоскости векторов a и b.
Примеры расчётов
| Режим | Операция | Вектор a | Вектор b | Подстановка | Результат | Комментарий |
|---|---|---|---|---|---|---|
| 2D | Сложение | (2; 3) | (4; 1) | (2 + 4; 3 + 1) | (6; 4) | Покоординатное сложение |
| 2D | Вычитание | (5; 2) | (1; 7) | (5 − 1; 2 − 7) | (4; −5) | Покоординатная разность |
| 2D | Скалярное произведение | (3; 4) | (1; 2) | 3 × 1 + 4 × 2 | 11 | Результат — число |
| 2D | Модуль | (3; 4) | — | √(3² + 4²) = √25 | 5 | Классическая «3-4-5» |
| 2D | Угол | (3; 4) | (4; 3) | cos φ = 24 / (5 × 5) = 0,96 | ≈ 16,26° | ≈ 0,284 рад |
| 2D | Угол | (1; 0) | (0; 1) | cos φ = 0 / (1 × 1) = 0 | 90° | Перпендикулярные векторы |
| 2D | Проекция | (3; 4) | (1; 0) | k = 3 / 1 = 3; (3 × 1; 3 × 0) | (3; 0) | Проекция a на ось b |
| 2D | Нормирование | (3; 4) | — | (3 / 5; 4 / 5) | (0,6; 0,8) | Единичный вектор, ‖â‖ = 1 |
| 3D | Модуль | (1; 2; 2) | — | √(1² + 2² + 2²) = √9 | 3 | Учитывается координата z |
| 3D | Скалярное произведение | (1; 2; 3) | (4; 5; 6) | 1 × 4 + 2 × 5 + 3 × 6 | 32 | Сумма по трём координатам |
| 3D | Векторное произведение | (1; 0; 0) | (0; 1; 0) | (0×0 − 0×1; 0×0 − 1×0; 1×1 − 0×0) | (0; 0; 1) | Перпендикуляр к обоим векторам |
