Перейти к статье

 

Задание направления

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

В общем случае для задания направления могут использоваться следующие опции:

Вектор

Основным способом задания направления является определение компонентов вектора, соответствующего этому направлению:

[vector] <xval yval zval>

Направляющий вектор не обязательно должен быть единичным. С помощью приведенных ниже команд изображается направление по оси x (ей соответствует единичный вектор: 1, 0, 0):

draw direction vector 1 0 0
draw direction 1 0 0
draw direction 10 0 0

Повторение предыдущего вектора

При использовании в команде данного ключевого слова воспроизводится последнее из определенных ранее направлений:

last

Например, если ввести команду:

draw direction last

после любой из приведенных выше в качестве примера, то будет изображено направление по оси x.

Опция не переносится из одной сессии в другую. Если направление не было задано, то по умолчанию принимается направление, соответствующее вектору (1, 0, 0).

Положительное или отрицательное направление вектора

Положительное или отрицательное направление вектора задается с помощью следующих параметров, определяющих его компоненты:

x | y | z | nx | ny | nz

Первые три параметра задают положительные направления по соответствующим осям, а последние три - отрицательные.

По касательной к кривой

Направление может быть задано вектором, расположенным по касательной к кривой:

[on] | [tangent] [at] curve <ID> {опции положения на кривой}

Если не указана ни одна из опций положения на кривой, то используется ее начальная вершина. Ниже приведены примеры команд с заданием направления по касательной к кривой (см. Рис. 1) с различными опциями положения:

draw direction curve 1
draw direction on curve 1
draw direction tangent at curve 1
draw direction tangent at curve 1 distance 3
draw direction tangent at curve 1 fraction .5
draw direction tangent at curve 1 distance 2 reverse

Рис. 1 - Векторы, касательные к кривой

По нормали к поверхности

Возможно задать направление по нормали к поверхности:

[on] | [normal] [at] surface <ID> [location {options}]

Если не указана никакая из опций положения (location {options}), то вектор нормали определяется в центре поверхности. В случае задания положения оно проецируется на поверхность, а затем находится вектор нормали. В качестве соответствующих примеров могут служить команды:

draw direction on surface 1
draw direction on surface 1 location 1 2 0

Из определенного положения

Приводимая ниже группа опций применима для задания направления из одного положения в другое или из определенного положения к какому-либо объекту:

[from] {location {options} | node | vertex <ID>} [project] {location {options} | [entity] {node | vertex | curve | surface} <ID>}

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

draw direction from vertex 1 vertex 2
draw direction from location on curve 1 fraction .5 surface 3

При использовании объекта как второго элемента ключевые слова project и entity не являются обязательными. Однако иногда бывает необходимо избавиться от неоднозначности, связанной с заданием предыдущего положения. Например, команда:

draw direction location on curve 1 distance 2 surface 3

не будет интерпретирована корректно: она изобразит положение на кривой 1 на расстоянии 2 от поверхности 3. Желаемым же результатом является изображение направления из точки на кривой 1, расположенной на расстоянии 2 от ее начала (вдоль кривой), к проекции этой точки на поверхность 3. Такой результат обеспечивается любой из следующих команд (они эквивалентны):

draw direction location on curve 1 distance 2 project surface 3
draw direction location on curve 1 distance 2 entity surface 3
draw direction location on curve 1 distance 2 project entity surface 3

Поворот

Возможно задать направление путем указания поворота соответствующего ему вектора на определенный угол вокруг другого вектора:

[rotate {options}]

В одной команде можно задавать любое желаемое число поворотов. Пример команды:

draw direction 1 0 0 rotate about z 135 rotate about curve 1 angle 50

В качестве опций поворота (rotate {options}) могут быть использованы следующие:

{Ax | X | Ay | Y | Az | Z [angle] <angle>} | {{[about] | towards} direction {options} angle <val>} [rotate (options)] [origin (location)]

Углы Ax, Ay, Az (или X, Y, Z) могут вводиться в произвольном порядке. Дополнительное задание ключевого слова rotate в параметрах команды указывает на разрешение нескольких поворотов.

Векторное произведение

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

[cross [with] direction {options}]

Обратное направление

Данное ключевое слово изменяет направление на обратное:

[reverse]

Предварительный просмотр направления

Иногда бывает полезно просмотреть направление до непосредственного его использования. Такой предварительный просмотр обеспечивает команда:

draw direction {опции направления} [location (опции положения)]