Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория[1].pdf
Скачиваний:
149
Добавлен:
27.03.2015
Размер:
1.24 Mб
Скачать

26

Экранная плоскость – это плоскость, на которую проецируются все объекты для получения изображения на экране.

С экранной плоскостью тесно связано понятие направление вида.

Направление вида – это направление взгляда, под которым строится изображение на экранной плоскости.

Экран (окно)

Направление

проецирования

Направление вида

Можно считать, что экранная плоскость всегда находится перед объектами. Мы смотрим на неё в Направлении вида, а объекты проецируются на неё в обратном направлении.

В области редактирования окна проекта видна только часть экранной плоскости.

1.7Система координат пользователя

Пользовательская система координат (User Coordinate System – UCS) – это система ко-

ординат, начало отсчета и направление осей которой пользователь задает сам. Именно в этой системе идет построение модели, именно в ней программа принимает введенные пользователем значения, и отображает информацию на экране.

1.8Масштабы

Масштаб построения – масштаб, в котором ведется построение модели. Все вводимые пользователем координаты и величины, пересчитываются в соответствии с этим масштабом, и полученные величины запоминаются в модели.

Масштаб изображения – масштаб, в котором изображение модели выводится на экран, печатающее устройство и т.д. Как правило, это масштаб не совпадает с масштабом построения.

1.9Относительные координаты

Относительными называют координаты заданные относительно предыдущей введенной точки. Фактически, программа автоматически изменяет начало отсчета после получения координат точки. Возможность вести построение таким способом существенно облегчает построение, когда размеры заданы цепочкой.

2. Разновидности 3D-графики

2.1Полигональная графика

Наиболее распространенной на сегодняшний день является полигональная графика. Это объясняется прежде всего высокой скоростью ее обработки. Любой объект полигональной графики задается набором полигонов. Полигон - это плоский многоугольник. Простейшим вариантом являются треугольные полигоны, ибо, как известно, через любые три точки в пространстве можно провести плоскость. Каждый полигон задается набором точек. Лучше всего задавать набор точек в том порядке, в каком они расположены относительно внешней нормали полигона, так как в данном случае полностью решается проблема удаления нелицевых граней без дополнительных затрат при последующей обработке. Точка же за-

27

дается тремя координатами - x, y, z. Таким образом, Вы можете задать 3-мерный объект как массив или как структуру.

2.2Векторная (аналитическая) графика

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

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

Такой подход позволяет сократить трудоемкость и количество ошибок. Особенно, если использовать контекст построения.

Например:

Шар радиуса r с центром в точке (x0, y0, z0): (x-x0)2+(y-y0)2+(z-z0)2=r2

Эллипсоид с радиусами a, b, c и с центром в точке (x0, y0, z0): (x-x0)2/a2+(y-y0)2/b2+(z-z0)2/c2=1

Гиперболоиды с радиусами a, b, c и с центром в точке (x0, y0, z0):

-(x-x0)2/a2+(y-y0)2/b2+(z-z0)2/c2=1 (x-x0)2/a2-(y-y0)2/b2+(z-z0)2/c2=1 (x-x0)2/a2+(y-y0)2/b2-(z-z0)2/c2=1

Параболоиды с центром в точке (x0, y0, z0): a(x-x0)2+b(y-y0)2+c(z-z0) =0

a(x-x0)2+b(y-y0)+c(z-z0) 2=0 a(x-x0)+b(y-y0)2+c(z-z0) 2=0

Объекты цилиндрического вида: a(x-x0)2+b(y-y0)2+c=0

a(x-x0)2+b+c(z-z0) 2=0

a+b(y-y0)2+c(z-z0) 2=0 a(x-x0)2+b(y-y0)=0 a(x-x0)2+c(z-z0)=0 a(x-x0)+b(y-y0)2=0

a(x-x0)+c(z-z0) 2=0

и т.д..

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

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

2.3Фрактальная графика

Алгоритмы фракталов могут создавать невероятные трехмерные изображения. Ключевое понятие любого фрактала - самоподобие. Объект называют самоподобным, когда увеличенные части объекта походят на сам объект и друг на друга.

28

Рассмотрите простую сферу. Является ли она самоподобной? Нет. При значительно большом увеличении она теряет сходство со сферой и начинает походить на плоскость. Сфера не самоподобна.

Местность относится к "самоподобному" классу. Зазубренный край сломанного горного камня в ладони вашей руки имеет те же самые очертания, что и горный хребет на горизонте. Благодаря этому, мы можем использовать фракталы для генерирования поверхности местности, которая походит на саму себя, независимо от масштаба, в котором она отображена.

Чтобы смоделировать случайную поверхность, мы нуждаемся в двумерном массиве значений высоты. Заметьте, что, хотя наша цель состоит в том, чтобы сгенерировать объемные координаты, массив должен хранить только значения высоты.

Приписывая цвет к каждому значению высоты, Вы можете отождествить отображение высоты с изображением. Теперь рассмотрим как обрабатывать наш двумерный массив значений высоты.

Идея:

Вы начинаете с большим пустым 2-мерным массивом точек. Размерность должна быть (2m+1)x(2m+1), где m - натуральное число. Установите значения в углах на одинаковое значение высоты.

Это - отправная точка для итерации обработки, состоящей из 2-х пунктов:

1.Вы берете квадрат и генерируете случайное значение в середине квадрата. Значение середины рассчитывается как арифметическое среднее четырех значений в углах, плюс случайная величина. Это дает Вам ромбы.

2.Вы берете каждый ромб и генерируете случайное значение в центре ромба. Значение середины рассчитывается как арифметическое среднее четырех значений в углах, плюс случайная величина, сгенерированная в том же самом диапазоне. Это дает Вам снова квадраты.

3.Так, после 1-го прохода Вы закончили бы с четырьмя квадратными полигонами, а по-

сле 2-го - с 16 . Третий проход привел бы к 64 квадратным полигонам. Количество полигонов растет очень быстро. Число сгенерированных квадратных полигонов равно 4i, где i - число итераций через рекурсивную функцию. Поэтому при большей детализации Вам потребуется намного больше вычислительных ресурсов.

4.На этом, пожалуй, стоит закончить рассмотрение фрактальной графики.

2.4Сплайновая графика

Историю сплайнов принято отсчитывать от момента появления первой работы Шенберга в 1946 году. Сначала сплайны рассматривались как удобный инструмент в теории и практике приближения функций. Однако довольно скоро область их применения начала быстро расширяться, и обнаружилось, что существует очень много сплайнов самых разных типов. Сплайны стали активно использоваться в численных методах, в системах автоматического проектирования и автоматизации научных исследований, во многих других областях человеческой деятельности и, конечно, в компьютерной графике.

Сам термин "сплайн" происходит от английского spline. Именно так называется гибкая полоска стали, при помощи которой чертежники проводили через заданные точки плавные кривые. В былые времена подобный способ построения плавных обводов различных тел, таких как, например, корпус корабля, кузов автомобиля был довольно широко распространен в практике машиностроения. В результате форма тела задавалась при помощи набора очень точно изготовленных сечений - плазов. Появление компьютеров позволило перейти от этого, плазово-шаблонного, метода к более эффективному способу задания поверхности обтекаемого тела. В основе этого подхода к описанию поверхностей лежит использование сравнительно несложных формул, позволяющих восстанавливать облик изделия с необходимой точностью. Ясно, что для большинства тел, встречающихся на практике, вряд ли возможно отыскание простых универсальных формул, которые описывали бы соответствующую поверхность глобально, то есть, как принято говорить, в целом. Это означает, что при решении задачи построения достаточно произвольной поверхности