Представление пространственных форм.

До сих пор рассматривалась возможность построения 3-х мерных линейчатых объектов на основе примитивов в виде отрезков. Однако возникают ситуации (особенно автоматизированное программирование), когда необходим вывод 3-х мерных форм:

-описание заданной формы (пластилиновой);

-процесс творческого создания формы объекта;

 

 

Представление пространственной формы с помощью набора из 12 отрезков (неоднозначность пространственного отображения формы)

 

 

 

В общем случае, пространственную форму можно создать из примитивов более высокого уровня (чем 2-х мерная графика) => плоскости сферы и т.п.

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

Используются два способа изображения поверхностей в пространстве:

-полигональные сетки

-параметрические бикубические сплайны

 

1.Полигональные сетки.

 

П.С. – это совокупность связанных многоугольников.

Пример:

 

 

Недостаток: приблизительность моделирования объекта. При более детальной прорисовке необходимы большие вычислительные и временные затраты ЭВМ.

Для сложных объектов:

«+»простота алгоритмизации

«–»большой объем памяти

 

2.Параметрические бикубические поверхности.

 

Координаты точек искривленных поверхностей описываются с помощью 3-х уравнений (для x, y и z)

х=х;

y=f(x);

z=g(x);

Каждое уравнение имеет две переменные (би), показатель степени не выше 3-ей (куб). Границы поверхностей – это параметрические кубические кривые.

 

Пример:

 

 

Преимущество: значительное снижение кусков аппроксимации, однако более сложная алгоритмизация.

«+»малый объем памяти

«-»время вычисления сплайнов

 

Методы описания полигональных сеток.

 

1.Явное задание многоугольников.

 

Многоугольник Р описывается:

P((x1,y1,z1),…(xn,yn,zn))

P – список координат вершин в порядке обхода многоугольника.

 

 

Недостаток:

-двойная прорисовка ребер

-для поиска многоугольников с одной вершиной необходимо сравнение пар ребер всех

примыкающих

-неоднозначность определения вершин при сравнении координат (потеря точности)

 

2.Указатели в список вершин.

 

Узел сетки запоминается лишь один раз в списке вершин:

V=((x1,y1,z1)…(xn,yn,zn))

Многоугольник определяется ссылкой на элемент списка.

 

Пример:

 

 

Список вершин:

V=(V1,V2,V3,V4) =((x1,y1,z1)…(xn,yn,zn))

Описание многоугольников:

P1=(1,2,4); P2=(4,2,3)

Преимущество: экономия памяти за счет однократного описания каждой вершины. Кроме того координаты вершин легко меняются.

Недостаток: трудно искать многоугольники с одинаковыми ребрами.

 

3.Явное задание ребер.

 

Имеется список вершин V. Имеется список Е, каждый элемент которого описан тетраэдр?!:

Е=( V1,V2, P1,P2)

V1 – вершина 1

V2 – вершина 2

P1 – многоугольник 1

P2 – многоугольник 2

Если ребро принадлежит одному многоугольнику, то одна из ссылок а – пуста.

Многоугольник определяется как ссылка на ребре Р=(Е1,...Еn)

 

Пример:

 

 

V=(V1,V2,V3,V4)=(x1,y1,z1,...)

E1=(V1,V2,P1,l )

E2=(V2,V3,P2,l )

E3=(V3,V4,P2, l)

E4=(V4,V2,P1,P2)

E5=(V4,V1,P1,l )

P1=(E1,E4,E5)

P2=(E1,E3,E4) E4 – не прорисовывается т.к. ссылка на P1

l = пусто

Вычеркиваются все ребра.

 

Для определения произвольной точки внутри многоугольника на плоскости можно пользоваться системой уравнений:

Ax+By+Cz+D=0 – уравнение плоскости

Ax1+By1+Cz1+D=0

Ax2+By2+Cz2+D=0

Ax3+By3+Cz3+D=0

Уравнения решаются относительно x,y,z.

Где: коэффициенты A,B,C,D определяются для плоскости по трем вершинам.