Хонич А.
Как самому создать трехмерную игру
стр. 169

Функция MatchDistanceOfVectors.

Дистанцию вычисляет функция MatchDistanceOfVectors, в которую передан *гся два указателя на вектора:

Форму ла, о которой сейчас пойдет речь, достаточно эффективна, но тем не менее без первой проверки (смотрите выше) ее использовать нельзя.

Если вектора параллельны, то функция MatchDistancw ifVfectors возвращает 0.

В ряде случаев, если вектора не пересекаются, то формула возвращает отрицательное значение. Формула выглядит так:

Здесь vl и v2 - это соответственно первый и второй вектора. Значения dx и dy в данных векторах определяют разницу координат соответственно по X и Y:

где V. х 1 - конечная координата вектора по X.

Если вектора параллельны, то знаменатель формулы будет равен нулю. Поэтому, дабы не возникла ошибка деления на ноль, знаменатель вычисляется сначала, и в случае его равенства нулю возвращается 0.

Реализация данной формулы на языке С выглядит так.


Новости
Авторы Kingdom Come: «Мы хотели сделать Red Dead Redemption с мечами»
Не причислять себя к традиционным инди-разработчикам, а пытаться создать игру, сравнимую с Red Dead, Far Cry, «Ведьмаком», Assassin’s Creed и The Elder Scrolls V: Skyrim.
VR-игра по мотивам Psychonauts добралась до ПК
На ПК вышла VR-игра от легендарного Тима Шейфера: теперь в Psychonauts in the Rhombus of Ruin могут сыграть не только владельцы PS VR, но и обладатели HTC Vive или Oculus Rift.