Конгер Д.
Физика для разработчиков компьютерных игр
стр. 72

Прежде чем завершить обсуждение скалярных произведений, замечу, что с их помощью можно определить, перпендикулярны ли друг к другу (или ортогональны) два вектора, то есть равен ли 90° угол между ними. Скалярное произведение ортогональных векторов равно 0. Поэтому, если функции из листинга 3.8 возвращают 0, вы будете знать, что векторы, использованные в качестве аргументов, ортогональны друг к другу.

Векторное произведение векторов

При скалярном произведении двух векторов результат является скаляром. При векторном произведении двух векторов результатом будет вектор. Векторное произведение записывается в виде:

а х b

В отличие от скалярного произведения и других операций с векторами, рассматриваемых в этой главе, векторное произведение существует только в трехмерных координатах.

Для любых двух векторов можно найти плоскость, в которой они лежат, как показано на рисунке 3.16. Вектор, получаемый при векторном произведении двух векторов, будет перпендикулярен плоскости, в которой лежат эти два вектора. Получаемый вектор называется нормальным вектором (normal vector). Именно для его получения и предназначено векторное произведение векторов.

Предположим, что два вектора определяют горизонтальную плоскость. В какую сторону - вверх или вниз - будет направлен нормальный вектор? Чтобы ответить на этот вопрос, воспользуемся правилом правой руки. Это правило сводится к следующему: чтобы определить направление, в котором указывает нормальный вектор, вытяните правую руку в направлении первого исходного вектора и направьте пальцы в ту сторону, в которой относительно первого исходного вектора расположен второй, как показано на рисунке 3.17. Отогните большой палец. Он будет указывать в направлении, в котором должен указывать нормальный вектор.

Для вычисления векторного произведения векторов, которые мы обозначим и и v, служит следующая формула:

В этой формуле i, j и к - это единичные векторы, с которыми вы скоро познакомитесь. А пока мы приведем формулу к виду, который немного легче использовать для написания кода на C++:






Новости
Новый ролик Fallout 76 посвятили совместной работе
Компания Bethesda опубликовала новый ролик Fallout 76, продолжающий серию обучающих видео «Время приключений».
Battle for Azeroth: до 120-го уровня добрались за пять часов
Первый в мире игрок 120-го уровня появился уже через четыре с лишним часа после открытия аддона.