Методом тыка попробуем выяснить, какие команды и флаги для этого нужны.

Коль скоро среди операций моделирования есть инструмент добавления точек к кривой, выберите любую кривую, а затем выполните Edit Curves=>Add Points Tool.

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

Каждой новой точке соответствует примерно следующая команда:

curve -os -а -р 0.477587 0.511006 0 curve2 ; Ключевым моментом являет наличие флага а, переводящего команду curve из режима создания новой кривой в режим добавления точек к существующей кривой, имя которой задано в конце команды.

Пытливые умы наверняка уже исследовали описание команды curve в документации. Наличие флага -os говорит о том, что координаты точек задаются в локальном пространстве объекта (object space), то есть кривой.

Удалите все кривые в сцене.

Попробуем поставить точку и добавить к ней еще три вершины:

curve -р 0 0 0 -n “myCurve”; curve -р 0 1 0 -a “myCurve”; curve -р 1 1 0 -a “myCurve”; curve -р 1 0 0 -a “myCurve”; Как видите, чтобы задать имя кривой, создаваемой первой командой, пришлось воспользоваться флагом -п, чтобы потом ссылаться на это имя при добавлении точек в следующих командах.

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

Такой цикл, выполняющийся нужное количество раз, немного отличается по синтаксису от цикла for-in, описанного в предыдущем выше.

Напишите и выполните следующий код:

curve -р 0 0 0 -n “myCurve”; int $i;

for($i=0; $i< 100; $i=$i+1)

[

curve -p (rand(0,2)) (rand(0,2)) 0 -a “myCurve”;

}

Возникнет хаотическая кривая, состоящая из ста и одной вершины. Напомню, что функция rand возвращает новое случайное число при каждом вызове.

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

Перед началом выполнения счетчику цикла присваивается нулевое значение ($i=0), затем проверяется условие цикла ($i< 100), и если оно не выполняется, цикл прекращает исполняться. В противном же случае выполняются команды из тела цикла. После каждого выполнения одного оборота цикла, выполняется операция увеличения счетчика ($i=$i+1), затем снова проверяется условие цикла ($i<100) и все продолжается до тех пор, пока условие цикла перестанет выполняться.

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

Приведенная стандартная конструкция позволяет выполнить набор команд нужное количество раз. В данном случае сто раз выполняется команда добавления новой вершины к существующей кривой myCurve.

Рисовать хаотические кривые в пространстве, конечно, забавно, однако попробуем построить график какой-нибудь функции. Те из вас, кому посчастливилось учиться в школе, конечно сразу вспомнили про синус.


⇐ вернуться назад | | далее ⇒