Выражения в качестве аргументов

Предопределенные значения углов вращения

В MAXScript имеется ряд предопределенных глобальных переменных. К ним относятся три следующие переменные: x_axis, y_axis и z_axis. Они представляют значения типа Point3, обозначающие вращение вокруг соответствующих осей:

x_axis представляет [1, 0, 0]

y_axis представляет [0, 1, 0]

z_axis представляет [0, 0, 1]

В любом выражении, описывающем вращение, выражение типа Point3 можно заменить соответствующей переменной. Зная это, данное выражение можно использовать для составления следующего выражения:

q = quat 45 x_axis


Глава 5

Аналогично методу eulerAngles, объект кватернионного вращения может быть присвоен любому вращаемому объекту, b = box()

q = quat 45 x_axis

rotate b q

Нередко оказывается удобнее сократить два или более оператора сценария до одного. В MAXScript это нетрудно сделать при вызове функций. Во всех приведенных выше примерах переменные или явно указываемые числовые значения были приведены в качестве аргументов. Но в этом качестве можно использовать и выражения. Выражение представляет собой конструкцию для вычисления значения. Так, если в приемнике команд ввести quat 20 x_axis и нажать клавишу <Enter>, в ответ появится сообщение об успешном выполнении команды.

 

 


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

В первом сценарии сначала создается кватернионный объект, а затем параллелепипед, который далее поворачивается на следующую величину:

rot = quat 30 y_axis

b = box rotation: rot

А во втором сценарии то же самое делается с помощью выражения в конструкторе:

b = box rotation:(quat 30 y_axis)

В выражении quat 30 y_axis вычисляется кватернион, поэтому его можно ввести вместо аргумента функции. Данное выражение сначала вычисляется внутри 3dsMax, а затем его значение присваивается свойству вращения. Такое выражение следует указывать в круглых скобках, чтобы 3dsMax было проще распознать его начало и конец. Где и как часто следует использовать подобные выражения, зависит от ваших целей и стиля программирования.

Кватернионы имеют свои ограничения. В частности, углы можно указывать только в пределах от -180° до 180°. Если же требуется повернуть объект на угол, который превышает данный 360-градусный диапазон, придется воспользоваться методом AngleAxis.


Преобразования и анимация