Полигональная сетка.
Представляет собой совокупность плоских многоугольников. Многоугольники связаны между собой. Количество вершин у многоугольников не ограничено. Способ задания является неточным. Погрешности существенны для тел сложной формы, хотя теоретически любой сложности тело можно представить отрезками плоскостей.
Например, шестигранник ещё не похож на цилиндр, а 12-гранник его уже больше напоминает. Чем больше плоскостей, тем точнее мы подгоним фигуру. Следует помнить, что чем точнее приближение, тем дольше происходит математическая обработка описания и тем больше требуется использовать памяти.
Параметрические кубические прямые описывают поверхность через уравнения третьего порядка.
f(x, y, z), причём уравнений записывается три. f – это многочлен третьего порядка.
x = f1(y, z, t)
y = f2(x, z, t)
z = f3(x, y, t)
Существует целый набор способов представления. Число участков сразу же снижается, сложность вычислений возрастает. Всё равно сложное тело описать одним уравнением не получится. Как описывать полигоны?
Например, здесь 2 куска поверхности с разными описаниями, а вообще их может быть и больше.
Способы описания полигональной сетки:
1) Явное задание многоугольников.
2) С помощью указателей в списке вершин.
3) Список рёбер.
1. P – многоугольник. P=((x1, y1, z1), (x2, y2, z2), (x3, y3, z3), … , (xn, yn, zn)). Причём точки в перечислении записываются строго в порядке обхода многоугольника. Последняя n-я точка соединяется с первой в записи. Фигура – это совокупность многоугольников.
F = {P1, P2, … ,Pn}
Пример. F = {P1, P2, P2}
P1=((x1, y1, z1), (x2, y2, z2), (x7, y7, z7))
P2=((x7, y7, z7), (x6, y6, z6), (x8, y8, z8), (x9, y9, z9))
P3=((x3, y3, z3), (x4, y4, z4), (x5, y5, z5), (x6, y6, z6), (x7, y7, z7))
2 3 4
I III
1 9 7
II
5
8 6
– мы прорисовывали 2 раза. Это не модно. Координаты точки 7 входят несколько раз. Мы дублируем одни и те же данные. Точка, участвующая в описании двух сторон будет записываться дважды, трёх сторон – трижды и так далее. Объём хранимой информации явно завышен. Существуют математические способы определения общих участков пространственных кривых, но количество сравнений для выполнения таких отсечений становится неоправданно большим. Также редактировать такие ссылки очень сложно. Способ этот громоздкий, но легко доступный для понимания.
2. 1) Составляется предварительный список вершин, не обязательно по возрастанию номеров:
(x1, y1, z1),
(x2, y2, z2)
…
(x9, y9, z9)
В этом списке ни одна точка не повторяется дважды. Затем ориентируясь на номер записи в списке вершин описывают полигон.
P1=(1, 2, 7)
P2=(6, 7, 9, 8)
P3=(3, 4, 5, 6, 7)
Сами записи проще, занимают меньший объём памяти, гораздо проще редактировать фигуру.
z
7 6
2 3
8 5 x
1 4
y
1 – (010)
2 – (011)
3 – (111)
4 – (110)
5 – (100)
6 – (101)
7 – (001)
8 – (000)
Полный куб:
P1=(1, 8, 5, 4)
P2=(1, 2, 3, 4)
P3=(2, 7, 6, 3)
P4=(7, 6, 5, 8)
P5=(1, 2, 7, 8)
P6=(3, 6, 5, 4)
Повторение перерисовывания общих рёбер не убрано.
3. Явное задание рёбер. При явном задании рёбер также первоначально составляется список вершин.
а) V1
V2
…
V9
б) На основании этого списка составляется список рёбер.
E1= {1; 2}
E2= {2; 7}
E3= {7 ;1}
…
В этой записи для избежания пересечений, указывается, какому полигону принадлежит ребро и фиктивный параметр рисовать или не рисовать (a и ù a).
E1= {1; 2; P1; a}
E2= {2; 7; P1; a}
E3= {7 ;1; P1; P2; a}
Если мы ХЗ ХЗ ХЗ ХЗ.
E4= {7; 6; P2; a}
E5= {6; 8; P2; a}
E6= {8 ;9; P2; a}
E7= {9 ;7; P2; ù a}
E1 E2
E3
1
3 E7 7
E6 E4
8 6
E5
Из списка рёбер записывается полигон.
P1=( E1, E2, E3)
P2=( E7, E4, E5, E6)
Исходя из совокупностей рёбер исключив пересечения, составляется описание полигональной сетки. На первый взгляд такое описание сложнее. В самом деле, объём описания не намного больше, но обрабатывается с такой же скоростью.
Дата добавления: 2016-07-27; просмотров: 2018;