Локальные вращения

Блокировка рамки

Из предыдущих упражнений напрашивается вывод, что для представления процесса вращения в MAXScript следует выбрать рамочную систему координат. Однако у этой системы координат имеется один существенный недостаток, который иллюстрирует следующее упражнение.

1. Выберите вариант Gimbal из раскрывающегося списка Reference Coordi­nate System на основной панели инструментов 3dsMax.

2. Выделите объект в любом видовом окне и поворачивайте его вокруг оси Y до тех пор, пока гизмо оси X не совпадет с гизмо оси Z.

 

 


Итак, существенный недостаток рамочной системы координат состоит в том, что при вращении вокруг оси Y на 90° положение гизмо осей X и Z совпадает, а следовательно, они обозначают одну и ту же ось вращения. Такая си­туация называется блокировкой рамки и в значительной степени ограничивает выбор видов вращения, которые можно выполняь.

3. Подобного осложнения можно в какой-то степени избежать, изменив порядок следования осей вращения. Так, если заранее известно, что объект должен,


Глава 5

скорее всего, повернуться на 90° вокруг оси Y, порядок следования осей можно изменить на следующий: YZX или YXZ, чтобы первым выполнялось вращение вокруг оси Y. Это позволяет исключить блокировку рамки при вращении объекта на 90° вокруг оси Y. Но если затем повернуть объект на 90° вокруг оси Z или X, блокировки рамки избежать не удастся.

Это основная причина, ограничивающая применение рамочной системы координат для представления процесса вращения.

Во всех приложениях трехмерного моделирования и анимации, включая 3dsMax, имеется собственное представление локального вращения, т.е. поворота вокруг локальных осей объекта. Но как было только что показано, вращение в ло­кальной системе координат не дает истинных значений для треков X Rotation, Y Rotation и Z Rotation в окне Track View. В этом смысле локальное вращение не позволяет правильно судить о происходящем.

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

Таким образом, точного способа представления конкретного локального вращения с помощью значений эйлерова вращения вокруг осей X, Y и Z не существует. В силу особого характера расчетов вращения в трехмерном пространстве этим недостатком страдают буквально все приложения трехмерного моделирования и анимации.