Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции КГ / Лекции КГ.doc
Скачиваний:
340
Добавлен:
10.05.2015
Размер:
7 Mб
Скачать
  1. Алгоритмы визуализации: отсечения, развертки, удаления невидимых линий и поверхностей, закраски

Созданную 3Dмодель поверхности или тела необходимовизуализировать – вывести на экран. При визуализации трехмерные объекты проецируются на плоскость, поэтому любая визуализация, в конечном счете, сводится к построению тех или иных проекций.

Все проекции делятся на два вида – центральныеипараллельные(Рис. 8 .54).

а)

б)

Рис. 8.54 – Центральная (а) и параллельная (б) проекции.

У центральных проекций имеется точка наблюдения, в которой сходятся лучи, строящие проекцию. У параллельной проекции точка наблюдения вынесена в бесконечность. При центральной (перспективной) проекции изображение более близко к тому, которое образуется на сетчатке глаза, поэтому оно кажется более реалистичным. Однако центральные проекции искажают размеры объекта, поэтому их применение недопустимо в конструкторской документации.

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

Поскольку тела состоят в общем случае из плавных кривых, необходимо иметь способ построения проекций не просто отдельных точек, но и произвольных кривых линий. Для получения проекционного изображения кривой используется понятие полигона кривой– ломаной линии, состоящей из отрезков и аппроксимирующей заданную кривую (Рис. 8 .55).

Рис. 8.55 – Полигон кривой.

Рис. 8.56 – Определение шага полигона.

Точки на полигоне идут с некоторым шагом, который зависит от принятой точности отображения . Вычислим допустимый шаг точек полигона. Пусть кривая задана уравнениемr(t). Точкаt0(Рис. 8 .56) лежит на кривой и является одной из вершин полигона. Нужно найти точку, являющуюся следующей вершиной полигона, причем отклонение полигона от кривой не должно превышать. Кривую в окрестностях точкиt0 можно представить как сегмент окружности радиуса:

(0)

По теореме Пифагора длина хорды h, соединяющей точкиt0иt1, равна

(0)

Поскольку величина hмала, можно считать, что длина хорды примерно равна длине дуги. Тогда приращениес учетом (0) равно

(0)

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

    1. Полигональная визуализация и линии очерка

Чтобы изобразить проекцию целого тела, а не отдельной кривой, используют наборы полигонов, называемые сетками. Обычно при визуализации строятся полигоны границ тела и нескольких его характерных линий (Рис. 8 .57).

Рис. 8.57 – Сетка визуализации тела.

Для повышения информативности и качества визуализации в сетку полигонов добавляют так называемые линии очерка (Рис. 8 .58). Линия очерка отделяет видимую часть поверхности или грани от невидимой (при заданной точке зрения).

Рис. 8.58 – Линии очерка поверхности.

У одной поверхности может быть несколько линий очерка. Каждая линия очерка является либо замкнутой кривой, либо ее концы лежат на краях поверхности. При этом параллельные и центральные проекции линий очерка одного и того же тела могут заметно различаться (7Рис. 8 .59).

а)

б)

в)