Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Комп_Граф / КГ_курс лекций.doc
Скачиваний:
191
Добавлен:
08.06.2015
Размер:
1.31 Mб
Скачать

4.2. Аппроксимация криволинейных поверхностей

Представление криволинейной поверхности в параметрической форме S(u, v) позволяет визуализировать ее с любой точностью и детальностью. Однако прямые вычисления значений функций x(u, v), y(u, v) и z(u, v) в общем случае весьма трудоемки, поэтому при разработке быстрых алгоритмов визуализации параметрические поверхности предварительно подвергают полигональной аппроксимации, т.е. криволинейную поверхность заменяют многогранной поверхностью из плоских многоугольников. Общепринято аппроксимировать криволинейные поверхности плоскими треугольниками. На рис. 4.4 показан результат такой аппроксимации для поверхности, изображенной на рис. 4.2.

Рис. 4.4

Основная процедура аппроксимации состоит в расчете узловых точек поверхности S(u, v), т.е. точек, которые будут использоваться в качестве вершин аппроксимирующих треугольников. Для этого выполняют табуляцию S(u, v) по обоим параметрам u и v. Шаги табуляции u и v чаще выбирают постоянными. В итоге заполняется двумерный массив V координат узловых точек. Элемент V[i, j] массива – это координаты (x, y, z) точки поверхности S(u, v), вычисленные для значений параметров u = i u и v = jv.

Модель криволинейной поверхности в форме массива V, получившаяся в результате линейной аппроксимации, называется полигональной [8]. В дальнейшем при формировании изображения рассматривается множество примыкающих к друг другу треугольников, вершины, которых хранятся в массиве V.

4.3. Многогранники и сложные объекты

Кусок параметрической поверхности S(u, v) может быть замкнутым. Примером может служить сфера. После аппроксимации замкнутой поверхности получится поверхность, ограничивающая геометрическое тело в виде многогранника. Многогранники часто выделяются в самостоятельный вид трехмерных примитивов. Произвольный многогранник Mg, ограниченный n гранями, описывается списком граней, т.е. плоских многоугольников:

Mg = (G1, G2, …, Gn). (4.7)

Каждая грань Gi в свою очередь задается упорядоченным списком вершин:

Gi = (Pi1, Pi2,, Pim). (4.8)

Частным случаем многогранников являются правильные многогранники, т.е. многогранники с одинаковыми гранями в виде правильных многоугольников [4]. Примером правильных многогранников является гексаэдр, обычно называемый кубом (рис. 4.5). Его геометрия задается одним параметром – длиной ребра.

Правильные многогранники вписываются в сферическую поверхность. Характеризуются количеством n граней и числом m сторон граней. Всего существует лишь пять видов правильных многогранников, называемых также Платоновыми телами: тетраэдр (n = 4, m = 3), гексаэдр (n = 6, m = 4), октаэдр (n = 8, m = 3), икосаэдр (n = 20, m = 3), додекаэдр (n = 12, m = 5). Для описания правильного многогранника достаточно задать координаты (xc, yc, zc) центра и радиус R описанной сферической поверхности, а также значения m и n. Для каждого вида правильных многогранников существуют свои алгоритмы расчета координат вершин по этим данным [4].

Рис. 4.5

Рис. 4.6

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

Очевидным подходом к описанию сложного геометрического объекта по аналогии с многогранниками является представление его поверхности списком граней S = (G1, G2, …, Gm). Описание каждой грани Gi в свою очередь должно включать описание поверхности, частью которой является грань, и описание граничного контура, т.е. отрезков всех линий пересечения данной грани со смежными гранями. Однако независимое конструирование граней для сборки их в одну поверхность с гарантией их точного сопряжения трудно реализовать практически, что и ограничивает применение этого подхода.

Как и в двумерной графике, для конструирования сложных пространственных объектов из примитивов можно использовать теоретико-множественные операции (ТМО). Однако программная реализация пространственных ТМО по сравнению с двумерными значительно сложнее. Единственной операцией, которая реализуется естественным образом без дополнительных расчетов, является объединение геометрических тел, поэтому при разработке недорогих графических систем часто выбирают компромиссное решение, когда сложные объекты собираются путем объединения заготовок более простых форм. Заготовки фактически являются расширением набора примитивов формами, характерными для конкретной прикладной области. Например, типичными заготовками для машиностроительных систем автоматизированного проектирования (САПР) являются цилиндры, конусы, параллелепипеды, шестигранники, пирамиды и т.п.

Соседние файлы в папке Комп_Граф