Калькулятор кута між векторами на площині
Введіть компоненти X і Y двох векторів, щоб знайти кут між ними в градусах. Калькулятор використовує формулу скалярного добутку й буде корисним у фізиці, геометрії та комп'ютерній графіці.
Обчислення кута між двовимірними векторами
Формула кута між двома векторами на площині
Де:
- \(\vec{A} \cdot \vec{B} = A_x B_x + A_y B_y\) — скалярний добуток двох векторів
- \(|\vec{A}| = \sqrt{A_x^2 + A_y^2}\) — модуль (довжина) вектора \(\vec{A}\)
- \(|\vec{B}| = \sqrt{B_x^2 + B_y^2}\) — модуль (довжина) вектора \(\vec{B}\)
- \(\theta\) — кут між двома векторами
Формула випливає з геометричного означення скалярного добутку: \(\vec{A} \cdot \vec{B} = |\vec{A}| |\vec{B}| \cos\theta\). Якщо розв'язати це рівняння відносно \(\theta\), отримаємо наведений вираз. Результат \(\cos^{-1}\) подано в радіанах, тому для переведення в градуси його множать на \(\frac{180}{\pi}\) — цей калькулятор робить це за вас і повертає відповідь у градусах.
Кут між двома векторами на площині – приклад обчислення
Приклад: знайти кут між \(\vec{V_1} = (1, 0)\) та \(\vec{V_2} = (0, 1)\).
\[ \vec{V_1} \cdot \vec{V_2} = (1)(0) + (0)(1) = 0 \]
\[ |\vec{V_1}| = \sqrt{1^2 + 0^2} = 1, \qquad |\vec{V_2}| = \sqrt{0^2 + 1^2} = 1 \]
\[ \theta = \cos^{-1}\left( \frac{0}{1 \cdot 1} \right) = \cos^{-1}(0) = 90° \]
Результат: кут між двома векторами дорівнює 90°. Вектори перпендикулярні, що й очікувалося від одиничних векторів уздовж осей X та Y.
Як користуватися калькулятором
- Введіть компоненту X першого вектора в поле Вектор V1 – X.
- Введіть компоненту Y першого вектора в поле Вектор V1 – Y.
- Введіть компоненту X другого вектора в поле Вектор V2 – X.
- Введіть компоненту Y другого вектора в поле Вектор V2 – Y.
- Зчитайте результат Кут між векторами (°). Відповідь подається в градусах, округлена до трьох десяткових знаків.
Приймаються як додатні, так і від'ємні значення, а також десяткові дроби. Попередньо нормалізувати вектори не потрібно — формула ділить на модулі, тому вектор будь-якої довжини дає той самий кут.
Що таке кут між двома векторами?
На площині вектор \(\vec{A} = (A_x, A_y)\) має і довжину, і напрямок. Якщо розмістити два вектори так, щоб вони починалися в одній точці, кут між ними показує, наскільки різними є їхні напрямки. Цей кут завжди лежить між 0° і 180°: 0° означає, що вектори вказують в один бік, 90° — що вони перпендикулярні, а 180° — що вони вказують у строго протилежні боки.
Ключем до обчислення цього кута є скалярний добуток. Він показує, наскільки два вектори «згодні» за напрямком: великий додатний скалярний добуток означає, що вектори вказують приблизно в один бік, нуль — що вони перпендикулярні, а від'ємне значення — що кут тупий. Якщо поділити скалярний добуток на добуток модулів, отримаємо \(\cos\theta\), а обернений косинус повертає сам кут.
Знання кута між векторами важливе в багатьох практичних ситуаціях. У фізиці воно дає змогу розкладати сили та обчислювати роботу, адже робота дорівнює \(F \cdot d \cdot \cos\theta\). У комп'ютерній графіці та розробці ігор кут використовують для перевірки кута огляду, розрахунків освітлення та повороту об'єктів у бік цілі. У навігації та робототехніці він показує системі, на скільки потрібно повернутися, щоб зайняти потрібний напрямок.
Для роботи з самими векторами вам також можуть знадобитися калькулятори довжини вектора на площині та додавання векторів на площині.
Як інтерпретувати результат
Калькулятор завжди повертає менший кут — від 0° до 180°. Це загальноприйнятий «кут між векторами» — він не показує, який із векторів повернутий за годинниковою стрілкою, а який — проти неї. Якщо вам потрібен кут зі знаком (наприклад, щоб вирішити, в який бік повертати в грі), додатково обчисліть векторний добуток \(A_x B_y - A_y B_x\): його знак указує напрямок повороту.
Кілька корисних окремих випадків для перевірки правильності введених даних:
| Вектори | Кут |
|---|---|
| Однаковий напрямок (паралельні) | 0° |
| Перпендикулярні (скалярний добуток = 0) | 90° |
| Протилежні напрямки | 180° |
| Однакові вектори | 0° |
Обмеження та поради
- Нульові вектори: якщо хоч один із векторів дорівнює \((0, 0)\), його напрямок не визначений. У цьому випадку калькулятор повертає 0, але з математичного погляду кут не існує.
- Округлення: через особливості арифметики з рухомою комою значення, дуже близькі до 1 або -1 всередині \(\cos^{-1}\), можуть давати мікропохибки; результат округлюється до трьох десяткових знаків.
- Одиниці: результат завжди подається в градусах. Щоб перевести його в радіани, помножте на \(\frac{\pi}{180}\).
- Порядок не має значення: зміна місцями V1 і V2 дає той самий кут, оскільки скалярний добуток комутативний.
- Незалежність від масштабу: множення будь-якого з векторів на додатне число не змінює кута, тому що модулі скорочуються.
Якщо ви працюєте у тривимірному просторі, а не на площині, та сама формула скалярного добутку залишається чинною — дивіться калькулятори скалярного добутку 3D-векторів та довжини 3D-вектора.
Часті запитання
Чи можна знайти кут між двома векторами на площині за допомогою atan2 замість скалярного добутку?
Так. Обчисліть власний кут напрямку кожного вектора відносно осі X: \(\alpha = \text{atan2}(A_y, A_x)\) та \(\beta = \text{atan2}(B_y, B_x)\). Тоді кут між ними дорівнює \(|\alpha - \beta|\), а якщо ця різниця перевищує 180°, використайте \(360° - |\alpha - \beta|\). Метод atan2 також природно дає результат зі знаком, що зручно в ігровому програмуванні, тоді як метод скалярного добутку завжди дає кут без знака.
Яким є нормальне або очікуване значення кута між двома векторами?
Кут між двома векторами завжди лежить у межах від 0° до 180°. Значення 0° означає, що вектори паралельні й вказують в один бік, 90° — що вони перпендикулярні (ортогональні), а 180° — що вони вказують у строго протилежні боки. Випадково обрані вектори на площині зазвичай дають кути, розподілені по всьому діапазону, тому єдиного «типового» значення не існує — важливо лише, чи результат відповідає вашому геометричному уявленню про введені дані.
Як перевести результат із градусів у радіани?
Помножте значення в градусах на \(\frac{\pi}{180} \approx 0{,}017453\). Наприклад, 90° дорівнює \(\frac{\pi}{2} \approx 1{,}5708\) радіан, а 180° дорівнює \(\pi \approx 3{,}1416\) радіан. Радіани — це стандартна одиниця в тригонометричних функціях більшості мов програмування (наприклад, cos і acos), тому таке перетворення потрібне, якщо ви повертаєте кут у код.
Що станеться, якщо помножити один вектор на від'ємне число?
На відміну від множення на додатне число (яке не змінює кута), множення вектора на від'ємне число обертає його напрямок, тож кут змінюється на \(180° - \theta\). Наприклад, кут між (1, 0) і (2, 0) дорівнює 0°, але між (1, 0) і (-2, 0) він становить 180°. Це часте джерело несподіванок, коли вектори отримано відніманням точок, адже зміна порядку віднімання (B − A замість A − B) змінює знак вектора на протилежний.
Чому під час ручного розрахунку в оберненому косинусі з'являється помилка або NaN?
Скалярний добуток, поділений на добуток модулів, має залишатися в межах від -1 до 1. Через округлення в арифметиці з рухомою комою значення може трохи вийти за цей діапазон (наприклад, 1.0000000001), де \(\cos^{-1}\) не визначений. Звичайне рішення — обмежити значення діапазоном [-1, 1] перед застосуванням оберненого косинуса. Також перевірте, що жоден із векторів не дорівнює (0, 0) — нульовий вектор не має напрямку, тому кут для нього математично не визначений.
Чи змінюється кут, якщо вектори задано в різних одиницях, наприклад у метрах і сантиметрах?
Обидва вектори мають бути виражені в одних і тих самих одиницях, оскільки їхні компоненти перемножуються в скалярному добутку. Якщо один вектор задано в метрах, а другий у сантиметрах, числа будуть невідповідними і результат виявиться хибним. Спочатку переведіть обидва вектори в одну одиницю. Зауважте, що сам кут є безрозмірнісною величиною — він не несе інших одиниць, крім градусів або радіанів.
Як дізнатися, в який бік повернути один вектор, щоб він збігся з іншим?
Обчисліть векторний добуток на площині \(A_x B_y - A_y B_x\). Якщо він додатний, поворот від \(\vec{A}\) до \(\vec{B}\) відбувається проти годинникової стрілки; якщо від'ємний — за годинниковою стрілкою. Поєднайте його знак з кутом із калькулятора, щоб отримати поворот зі знаком. Якщо векторний добуток дорівнює нулю, а скалярний добуток додатний, вектори вже збігаються за напрямком; якщо скалярний добуток від'ємний, вони вказують у протилежні боки.