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

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

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

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

а х b

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

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

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

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

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






Новости
В PUBG вышла новая карта «Санок»
Bluehole не один месяц тестировала третью карту для PUBG, и сегодня тропическая миниатюрная карта «Санок» наконец-то вышла на общих серверах.
В Warface добавили режим «Королевская битва 2.0»
В Warface разработчики добавили режим «Королевская битва 2.0». Старая версия доработана, количество игроков увеличено с 16 до 32.