LOGO
Главная Регистрация Вход RSS
Приветствую Вас, Гость
Статистика
Яндекс.Метрика
Поделиться
Реклама
Вход на сайт
Популярное
[14.10.2015][ОГЭ]
Площадь четырёхугольника можно вычислить по формуле s=d1*d2*sin a/2 , где d1 и d2 — длины диагоналей четырехугольника, а —угол между диа (0)
[11.03.2016][ОГЭ]
Найдите площадь квадрата, описанного около окружности радиуса 9. (0)
[21.12.2014][ЕГЭ (П)]
Диагональ правильной четырёхугольной призмы наклонена к плоскости основания под углом 30°. Боковое ребро равно 3. Найдите диагональ призмы. (0)
[15.04.2015][ЕГЭ (П)]
В прямоугольном параллелепипеде ABCDA1B1C1D1 известны длины рёбер: АВ = 3, AD = 4, АА1 = 32. Найдите площадь сечения, про¬ходящего через вер (0)
[21.12.2014][ЕГЭ (П)]
Корень(9 - 4*корень(5)) - корень(5) или √9-4√5-√5 (0)
[21.12.2014][ЕГЭ (П)]
В случайном эксперименте симметричную монету бросают триж¬ды. Найдите вероятность того, что решка выпадет все три раза (0)
[14.10.2015][ОГЭ]
12. На клетчатой бумаге с размером клетки 1x1 изображён параллелограмм. Найдите его пло¬щадь (0)
[29.01.2016][ОГЭ]
Биссектриса равностороннего треугольника равна 9Корень(3) . Найдите его сторону. (0)
[11.02.2016][ОГЭ]
На клетчатой бумаге с размером клетки 1x1 изображена трапеция. Найдите длину её средней линии. (0)
[14.10.2015][ОГЭ]
После уценки телевизора его новая цена составила 0,57 старой. На сколько процентов уменьшилась цена телевизора в результате уценки? (0)
Главная » Статьи » VRML » Написание моделей

Построение примитивов в VRML

Язык построения трехмерных сцен VRML имеет свои отличительные стороны. Это выражается в построении кода и структуре файла VRML сцены.

Файл VRML всегда начинается с заголовка:

#VRML V2.0 utf8

Заголовок сообщает браузеру, что перед ним VRML файл, а также версию и кодировку файла.

VRML-мир описывается при помощи иерархического графа сцены. Основные строительные объекты графа называются узлами (nodes). В VRML97 определены 54 типа узлов. Среди них – геометрические примитивы, узлы, определяющие внешний вид объектов, узлы звука и его свойств, несколько типов группирующих узлов. Внутри узлов находятся поля, хранящие свойства объекта. В VRML97 есть 20 типов полей. В них может храниться что угодно, от размера куба до еще одного узла.  Узлы записываются следующим образом:

Group{

           Children[

            ]

}

Узел Group – простейший узел, он просто группирует вместе другие узлы [3].

В VRML существует основные четыре типа геометрических примитивов. Это прямоугольный параллелепипед (Box), цилиндр (Cylinder), сфера (Sphere) и конус (Cone). Форму каждого из этих примитивов представить несложно, это обычный прямоугольный параллелепипед или куб, цилиндр, сфера, конус. Единственная разница между ними это способ описания, он индивидуален для каждого примитива.

Узел Box со всеми параметрами по умолчанию – это куб со стороной 2 метра, центром в начале координат и сторонами параллельными координатным осям. В этом случае Box будет описываться так:

Box     {}

Но данное описание должно происходить в узле Shape, так как именно в этом узле содержится описание всех объектов. В этом узле всего два поля: внешность (appearance)  и геометрия (geometry). Для создания простого куба необходимо поле geometry. Вот пример программы создающей стандартный куб:

                                  #VRML V2.0 utf8

Shape          {geometry        Box     {}}

Но конечно можно задавать куб и с любыми размерами. Размеры задаются по осям X, Y и Z, и все размеры должны быть положительны. Вот пример куба со сторонами 5 метров:

                           #VRML V2.0 utf8

Shape          {geometry        Box     {size 5 5 5}}

Внутреннее пространство куба зависит от браузера, в котором этот куб просматривают. В основном внутреннего пространства у куба просто нет, если наблюдатель заходит внутрь куба, то куб просто пропадает.

Узел Cylinder немного сложнее, он включает больше параметров. Кроме параметров, отвечающих за размер, у него присутствуют параметры, отвечающие за отображение боковых поверхностей, верхнего и нижнего основания. Ось цилиндра по умолчанию ориентирована параллельно оси Y.

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

                           #VRML V2.0 utf8

Shape          {geometry       Cylinder {}}

Первый параметр у цилиндра это radius, соответственно задает радиус цилиндра. Параметр height отвечает за высоту цилиндра. Следующие параметры имеют логические значения либо лож, либо истина. Это параметры: side (боковая поверхность), top (верхнее основание) и bottom (нижнее основание) [3]. Если эти параметры имеют значение лож, то цилиндр не будет отображаться вообще. Вот цилиндр без верхнего основания:

#VRML V2.0 utf8

Shape          {geometry Cylinder {

bottom TRUE

height 8

radius 10

side TRUE

top  FALSE

}}

Узел Cone очень похож на узел Cylinder, с той разницей что поле radius заменено на поле bottomRadius (радиус нижнего основания) и поле top отсутствует, так как у конуса нет верхнего основания. В остальном описание происходит точно так же. Вот пример описания конуса:

#VRML V2.0 utf8

Shape          {geometry Cone {

bottomRadius 10

height 20

side TRUE

bottom  TRUE

}}

Узел Sphere, достаточно прост, он имеет только одно поле – radius. По умолчанию сфера имеет радиус 1 метр и цент в точке 0,0,0.  Вот так просто описывается сфера:

#VRML V2.0 utf8

Shape          {geometry Sphere {

radius 100

}}

Категория: Написание моделей | Добавил: Ret-Ar (30.08.2014)
Просмотров: 2268 | Рейтинг: 0.0/0