Контексты

У всякого геометрического объекта имеется своя точка опоры, которая представляет собой точку, вокруг которой происходит перемещение, вращение и масштабирование объекта. До сих пор в этой главе преобразования рассматривались лишь относительно устанавливаемой по умолчанию точки опоры объекта.

Для преобразования точки опоры объекта вручную выполните следующее упражнение.

                       1.  Создайте любой объект.

                       2.  Перейдите к панели команд Hierarchy.

                       3.  Если объект выделен, активизируйте кнопку Affect Pivot Only (Оказывать влияние только на точку опоры).

Точка опоры перемещается и вращается, когда выполняются преобразования перемещением и вращением. На приведенном ниже рисунке показана точка опоры параллелепипеда после того, как он был преобразован произвольным образом.

Для изменения точки опоры объекта в MAXScript воспользуйтесь свойством .pivot, чтобы установить или переместить точку опоры, например:

object.pivot = [0, 0, 10.0]

или

object.pivot.z = 10.0

Любые последующие преобразования объекта будут происходить относительно нового центра преобразования.

Для преобразования точки опоры средствами MAXScript выполните следующее упражнение.

                       1.  Создайте параллелепипед. Введите следующую строку кода и нажмите клавишу :

b = box()

                       2.  Переместите точку опоры данного объекта. Введите следующую строку кода и нажмите клавишу :

b.pivot.z = 40.0

                       3.  Перейдите к панели команд Hierarchy. Активизируйте кнопку Affect Pivot Only.

Убедитесь в том, что параллелепипед выделен. Как видите, точка опоры параллелепипеда смещена по оси Z.

                       4.  Установите точку опоры в центре параллелепипеда с помощью свойства .center. Введите следующую строку кода и нажмите клавишу :

b.pivot = b.center

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

Если выполняется вращение, в 3ds Max предполагается, что это делается в системе мировых координат относительно точки опоры. Преобразования можно выполнять и относительно других точек объекта или же в иной системе координат. Это делается с помощью контекстов, где указывается ссылка на выполняемую операцию. К наиболее важным контекстам относятся coordsys и about.

                                            coordsys указывает систему координат для операции.

                                            about указывает точку опоры (или центр преобразования) для операции. Контекст about применяется к операциям вращения и преобразования.

Для того чтобы воспользоваться контекстом about, выполните следующее упражнение.

                       1.  Создайте два цилиндра на сцене. Для этого введите следующие строки кода, нажав после каждой из них клавишу :

c1 = cylinder height:50
c2 = cylinder pos:[40, 0, 0]

Далее попробуйте выполнить два разных вращения цилиндра c1.

                       2.  Введите следующую строку кода и нажмите клавишу :

rotate c1 (quat 45 y_axis)

По умолчанию используется система мировых координат, а точка опоры находится в основании цилиндра. Далее вам предстоит ознакомиться с контекстом about и его применением.

                       3.  Щелкните правой кнопкой мыши в любом видовом окне и нажмите комбинацию клавиш , чтобы отменить только что выполненное вращение.

                       4.  Введите в приемнике команд следующую строку кода и нажмите клавишу :

about c2 rotate c1 (quat 45 y_axis)

Теперь результат вращения будет иным, поскольку на этот раз центр преобразования находится в точке опоры цилиндра c2.

Префикс контекста about указывается в начале, а не в конце выражения, как можно было бы ожидать. В 3ds Max операторы интерпретируются слева направо, поэтому контекст следует применять до операции вращения. Если поместить префикс контекста about в конце выражения, он будет применен к следующей вводимой операции.

Ниже приведены другие примеры применения контекста about:

n    about [x, y, z] — выполняет вращение определенной точки;

n    about selection — выполняет вращение вокруг центра выделенных в данный момент объектов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *