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

есть координаты центров шаров, представленные в виде векторов, то расстояние между ними можно найти, вычтя один вектор из другого. Это демонстрирует рисунок 8.5.

Вычтя вектор рг из вектора р2 с рисунка 8.5, мы получим вектор расстояния между двумя центрами масс. Теперь программе осталось только найти длину вектора расстояния и сравнить ее с суммой радиусов ограничивающих сфер. Если эта длина меньше суммы радиусов, значит, произошло столкновение. Если нет, столкновения нет.

Если описанные выше действия не совсем понятны, посмотрите на следующий фрагмент кода. Он использует два объекта класса d3d_po-int_mass — balll и ball2 - и вычисляет расстояние между ними как длину вектора расстояния. После этого он сравнивает найденное расстояние и сумму радиусов.

Этот алгоритм прекрасно работает, но у него есть очень существенный недостаток: он очень медленный! Вспомните - нужно проверять, произошло ли столкновение между каждой парой частиц в сцене. И при каждой проверке нужно вычислять квадратный корень. Это очень медленная операция - она выполняется почти в 70 раз дольше, чем операция умножения двух чисел с плавающей запятой. Вспомните код метода vec-tor_3d: : Norm (), вычисляющего норму вектора:

Новости
Геймеры собирают деньги на помощь русским сиротам
Сервис Humble Store и компания Tripwire Interactive поддержат организацию Change30. Британцы предоставляют помощь русским сиротам.
Слух: На E3 2018 покажут Cyberpunk 2077
Крупное польское видеоигровое издание GRYOnline сообщило о том, что, согласно их собственным источникам в компании, CD Projekt Red готовит к E3 2018 новый трейлер Cyberpunk 2077.