Справочник по VRML : Положение фигуры в пространстве

смотрим также

Материал из Справочник Web-языков

Перейти к: навигация, поиск


Содержание

Coordinate3

Используется для того, чтобы определить множество трехмерных координат, которые могут быть использованы графом сцены для узлов IndexedFaceSet, IndexedLineSet, PointSet.

Синтаксис:

Coordinate3 { 
    point 0 0 0 # MFVec3f 
    }

Поле point служит для представления трехмерных координат.

Translation

Определяет координаты объекта.

Синтаксис:

Translation {
    translation 1 2 3 # т.е. соответственно x=1, y=2, z=3 
    }

При описании какого-либо объекта по умолчанию он появляется в середине экрана. Так, при описании двух цилиндров, они сольются вместе. По-этому для их разделения применяют узел Translation.

Координаты, указанные в Translation, являются относительными по отношению к предыдущему узлу Translation.

Separator

Группировка узлов и объектов.

Синтаксис:

Separator {
    Другие узлы 
    }

В VRML существует правило: свойства фигур (Translation, Material и т.д.) действуют на все следом идущие объекты.

Узел Separation - своеобразный контейнер, который может содержать другие узлы и объекты, и ограничивать область действия узлов типа Translation и Material.

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

Separator {
    USE name 
    }

Rotation

Вращение фигуры вокруг осей.

Синтаксис:

Rotation {
    rotation 0 1 0 1.57 
    }

Первые три цифры указывают на возможность поворота фигуры по осям x,y,z соответственно.

Последняя цифра указывает угол поворота в радианах.

Углы в градусах Углы в радианах
30 0.52
45 0.78
60 1.04
90 1.57
180 3.14
270 4.71

Scale

Масштабирование фигур.

Синтаксис:

Scale {
    scaleFactor 1 1 1 # определяют коэффициенты масштабирования по x,y,z соответственно 
    }

Узел Scale масштабирует фигуры по одному или нескольким измерениям.

Group

Используется для того, чтобы определить базовый класс для целой группы узлов.

Пример ( данный узел не имеет полей ):

Group { 
    # Child nodes defined here 
    }

Узел Group определяет узел-контейнер, который содержит упорядоченный список узлов-потомков. Узел Group не изменяет порядок обхода ( логику обработки броузером узлов и порядок, в котором броузер их прорисовывает ). Как уже было кратко обсуждено ранее, VRML передает текущее состояние ( цвета, текстуры, трансформации и т.д.) каждому последующему узлу-потомку. Узел Group не сохраняет и не восстанавливает порядок обхода, в противоположность методу, используемому узлом Separator, который сохраняет и восстанавливает состояние.

LOD

Документы VRML используют узел LOD ( Level of Detail - уровень детализации ) для того, чтобы позволить броузеру автоматически переключаться между различными представлениями объектов вашего графа сцены. Таким способом броузер может входить или выходить из образа, основываясь на расстояниях, определенными пользователем от объекта к объекту.

Пример:

LOD { 
    center 0 0 0 # SFVec3f 
    range [ ] # MFFloat 
    }
center
- Определяет центр группы объектов LOD. Броузер применяет текущее преобразование к центру объекта.
range
- Определяет массив значений, которые соответствуют расстояниям от пользователя до центра группы объектов в узле LOD. Броузер сравнивает текущее расстояние до первого значения в массиве range. Если расстояние меньше, чем первое значение массива, броузер прорисовывает первого потомка группы LOD. Если расстояние больше, чем первое значение массива, но меньше, чем второе значение, то броузер прорисовывает второго потомка группы LOD и т.д.

Switch

Используется для того, чтобы включать и выключать свойства. В зависимости от значения своего поля, группа, указанная в узле, ведет себя в точности или сходно с поведением, задаваемым узлом Group.

Пример:

Switch { 
    whichChild -1 # SFLong 
    }
whichChild
- Если принимает значение -3, то узел ведет себя в точности так же, как узел Group. Если значение поля whichChild равно -1, то узел направляет броузеру всех своих потомков. Значение whichChild указывает потомка, к которому узел адресует броузер. Первый потомок имеет значение индекса, равное 0.

TransformSeparator

Используется таким же образом, как и узел Separation. Оба узла сохраняют состояние сцены перед переходом к узлам-потомкам. Аналогично оба узла восстанавливают состояние сцены после окончания обработки узлов-потомков. Но рассматриваемый узел сохраняет только текущее преобразование, все остальные параметры состояния остаются не сохраненными.

Пример:

TransformSeparator { 
    # Other nodes here 
    }

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

Источник — «http://www.spravkaweb.ru/vrml/coord/»
Добавить страницу в закладки:
РАЗРЕШАЕТСЯ перепечатывать и копировать информацию ТОЛЬКО ПРИ РАЗМЕЩЕНИИ ссылки на оригинал!
(<A href="http://www.spravkaweb.ru/">Справочник Web-языков</A>)
другие проекты
Rambler\'s Top100 Индекс цитирования