Построение примитивов в VRML - Написание моделей - VRML - Каталог статей - Учись!
Главная Регистрация Вход RSS
Приветствую Вас, Гость
Случайное решение
[30.12.2013][Фракталы]
Фрактал звезда (0)
[13.10.2015][ЕГЭ (П)]
На рисунке изображён график дифференцируемой функции у = f (x) и отмечены семь точек на оси абсцисс: х1, х2, х3, х4, х5, х6, х7. (0)
[11.02.2016][ОГЭ]
Найдите величину острого угла параллелограмма ABCD, если биссектриса угла А образует со стороной ВС угол, равный 41°. Ответ дайте в градуса (0)
[11.02.2016][ОГЭ]
На клетчатой бумаге с размером клетки 1x1 изображена трапеция. Найдите её площадь. (0)
[15.05.2015][ЕГЭ (П)]
Для определения эффективной температуры звёзд используют закон Стефана — Больцмана, согласно которому мощность излучения нагретого тела пря (0)
[21.12.2014][ЕГЭ (П)]
На рисунке изображён график функции у = /(х), определённой на интервале (-5; 9). Найдите количество точек, в которых произ¬водная функции f{ (0)
[05.04.2015][ЕГЭ (П)]
Поезд Екатеринбург—Москва отправляется в 7:23, а прибывает в 9:23 на следующий день (время московское). Сколько часов поезд находится в пути (0)
[24.09.2015][ОГЭ]
Какое из следующих чисел заключено между числами 19/18 и 17/15 (0)
Статистика
Яндекс.Метрика
Поделиться
Реклама
Вход на сайт
Популярное
[14.10.2015][ОГЭ]
Площадь четырёхугольника можно вычислить по формуле s=d1*d2*sin a/2 , где d1 и d2 — длины диагоналей четырехугольника, а —угол между диа (0)
[21.12.2014][ЕГЭ (П)]
Диагональ правильной четырёхугольной призмы наклонена к плоскости основания под углом 30°. Боковое ребро равно 3. Найдите диагональ призмы. (0)
[15.04.2015][ЕГЭ (П)]
В прямоугольном параллелепипеде ABCDA1B1C1D1 известны длины рёбер: АВ = 3, AD = 4, АА1 = 32. Найдите площадь сечения, про¬ходящего через вер (0)
[21.12.2014][ЕГЭ (П)]
В случайном эксперименте симметричную монету бросают триж¬ды. Найдите вероятность того, что решка выпадет все три раза (0)
[11.03.2016][ОГЭ]
Найдите площадь квадрата, описанного около окружности радиуса 9. (0)
[21.12.2014][ЕГЭ (П)]
Корень(9 - 4*корень(5)) - корень(5) или √9-4√5-√5 (0)
[14.10.2015][ОГЭ]
После уценки телевизора его новая цена составила 0,57 старой. На сколько процентов уменьшилась цена телевизора в результате уценки? (0)
[15.04.2015][ЕГЭ (П)]
13. Первый сплав содержит 5% меди, второй — 11% меди. Масса второго сплава больше массы первого на 4 кг. Из этих двух спла¬вов получили трет (0)
[14.10.2015][ОГЭ]
12. На клетчатой бумаге с размером клетки 1x1 изображён параллелограмм. Найдите его пло¬щадь (0)
[14.10.2015][ОГЭ]
10. Отрезки АС и BD — диаметры окружности с центром О. Угол АСВ равен 78° . Найдите угол AOD. Ответ дайте в градусах (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)
Просмотров: 2049 | Рейтинг: 0.0/0