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

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

ПОВОРОТ ВОКРУГ ПРОИЗВОЛЬНОЙ точки

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

Чтобы сделать это, нужно сначала перенести в начало координат точку, вокруг которой будет выполняться вращение всех точек, которые вы хотите повернуть - как показано на рисунке 4.5.

Если а - вектор смещения от начала координат к центру вращения, а х — вектор смещения от центра вращения до поворачиваемой точки, то первый шаг в повороте точки - перемещение центра вращения в начало координат по формуле

х — а

При этом поворачиваемая точка сместится так, что она будет поворачиваться вокруг начала координат. Теперь можно выполнить следующий шаг - повернуть вектор смещения поворачиваемой точки с помощью матрицы поворота R, как показано на рисунке 4.6. Совмещая этот шаг с предыдущим, получаем формулу

(х - a)R

И, наконец, нужно переместить центр вращения (и, соответственно, поворачиваемую точку) обратно в исходную позицию, сложив ее вектор смещения с вектором а. Этот шаг показан на рисунке 4.7. Вот общая формула поворота точки относительно центра вращения а.









Новости
Косплей Сенуя из Hellblade: Senua’s Sacrifice
Редакция Геймбокса не могла не поделиться с вами прекрасным отечественным косплеем на Сенуя из Hellblade: Senua's Sacrifice.
Bethesda подала в суд на Warner Bros. за Westworld
Как утверждает издание TMZ, компания Bethesda Softworks подала в суд на кинокомпанию Warner Bros. и студию Behaviour Interactive.