Шаг 4 - Координатная система и размерности

Система координат принятая в VRML является правосторонней трехмерной Картезианской координатной системой. Это значит, что ось X горизонтальна, ось Y вертикальна, а ось Z направлена от экрана.

4.gif (831 b)

За единицу измерения линейного размера в VRML принят 1 метр. Почему именно метр ? Возможно потому, что относительно размеров в реальном мире было бы проще все размеры виртуального мира измерять также в метрах. Это конечно же не означает, что виртуальные дома созданные вами должны иметь натуральные размеры. Вы можете создать дом размером в 1 миллиметр, только в этом случае все координаты будут иметь большее количество нулей. А в связи с тем, что файлы VRML текстовые, данное решение не будет хорошим.

Кстати следует поговорить насчет точности размеров. Точно так же, как и для HTML, для VRML не существует хорошего редактора. Почему ? А потому, что любой редактор это программа и скорее всего ему не вдомек насколько точно вам нужен определенный размер. Почти всегда объекты создаются вручную, т.е. движением мышки, а не точным заданием размеров. От того, что любое движение мышки не является идеально точным и возникают погрешности в несколько пикселов. После нескольких тригонометрических преобразований величина в несколько пикселов вырастает в числовую последовательность достаточно большой длинны. А по причине того, что параметры округления во многих редакторах задать нельзя совсем, либо можно, но в бесконечном количестве настроек (которые, как правило, остаются в состоянии "по умолчанию"), то можно констатировать тот факт, что программа будет делать "как может" и никто не будет гарантировать результат. Из-за этого часто можно наблюдать картину, когда, например, толщина стены здания задана с точностью до велинины молекулы, хотя часто и сантиметры сложно на глаз определить (тем более в браузере). Поэтому, как и в HTML, я рекомендую Вам использовать ручную разметку. Сложно, но можно. Заодно развивается воображение. Хотя, если подойти к этому вопросу грамотно и создать все нужные проекции, то можно определять все расстояния с помощью циркуля.

Следующая единица измерения предназначена для углов. С точки зрения математики разработчики стандарта VRML поступили грамотно и приняли 1 радиан за единицу измерения углов, но с точки зрения ручного создания гораздо более выгодным решением были бы градусы, так что остается "поклониться" разработчикам... Теперь всем любителям "клавиши F4" обеспечена небольшая головная боль. Вот небольшая табличка:

ГрадусыРадианы
00
450.78
901.57
1352.36
1803.14 (pi)
2253.93
2704.71
3155.5
3606.28 (2*pi)

Подумать только, для того, чтобы записать угол в 90 градусов надо использовать значение размером в 4 символа (вместо 2) кроме того точность этого прямого угла будет сомнительной. Мда... Ну ладно...

Углы, углы... А для чего они ?! Хехе... Углы используются для вращения трехмерных объектов вокруг осей. Причем запомните угол отсчитывается по часовой стрелке - это важно ! Хотя кому как... :)

Следующей размерностью являются секунды. Для измерения, как уже все догадались, времени.

Ну, и на последок, цветое пространство. Цвета в VRML задаются, к сожалению, не совсем как в HTML, а именно в все в том же виде RGB, но компоненты цвета измеряются вещественной величиной от 0 до 1 (где 1 - максимальное значение составляющей цвета). К примеру:

красный - (1,0,0)
серый - (0.5,0.5,0.5) = (.5,.5,.5)

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Кузин Андрей - 31.07.2001