Учебник по VRML 97

         

Box (паралеллепипед)


Описание прямоугольного параллелепипеда выглядит предельно просто:

Box {size 2 2 2}

По умолчанию центр тяжести помещается в 0,0,0.

Таким образом код кубика 2x2x2 будет выглядеть так

#VRML V2.0 utf8 Shape {geometry Box {}}

Узел Shape указывает броузеру, что идет описание формы объекта. Можете , что получилось

Поскольку нам понадобится крышка для будущего стола, давайте изменим размеры. Прикиньте размеры стола, за которым сидите в метрах. Не забывайте про расположение .

. .

Теперь очередь за ножками стола. Здесь очень уместно объяснить использование узлов DEF/USE и PROTO

Если Вы знаете хотя бы какой-нибудь язык программирования, то это очень легко понять. Вместо описания каждой из четырех одинаковых ножек стола отдельно, мы определяем ПЕРЕМЕННУЮ (DEF), а потом используем ее (USE).

Однако если просто написать USE, то второй объект будет порожден в том же месте, что и исходный. Для управления положением объекта существует узел Transform. На примере с ножками стола легко увидеть, как использовать DEF/USE и Transform.

Вот как они выглядят. . .

Как видно из кода, исходная первая ножка была создана в точке с координатами 0,0,0, и ей была присвоена переменная с именем "nozhka". Оставшиеся три ножки были порождены смещением переменной "nozhka" вдоль осей X и Z.

Теперь надо совместить ножки стола и его крышку. Имея отдельные файла с этими объектами, можно поступить двумя способами: либо в обычном текстовом редакторе вырезать из одного файла объект и вставить в другой, либо воспользоваться узлом Inline.

Вариант 1.. .

Вариант 2. . .

Как видно из просмотра wrl файлов, результат абсолютно одинаков. Осталось только воспользоваться узлом Transform, чтобы правильно взаимно разместить крышку и ножки стола. Предлагаю двигать крышку:

. .



Содержание раздела