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

Во многих приложениях машинной графики возникает потребность в представлении трехмерных форм: при проектировании самолетов, при восстановлении трехмерных тел по изображениям их поперечных сечений, построенных с помощью машинной томографии, при автоматической сборке и во многих других. Нам уже известно, как изображаются пространственные объекты, когда их удается представить в виде последовательности отрезков прямых, заданных в мировых координатах. Совокупность отрезков не является адекватным описанием объекта, поскольку отрезки сами по себе не определяют поверхностей. В то же время информация о поверхностях необходима для проведения вычислений, связанных со стиранием скрытых частей изображения, для определения объемов и т. д. Таким образом, мы приходим к выводу, что для описания трехмерных форм необходимы поверхности – примитивы более высокого уровня, чем отрезки.

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

При втором способе описания трехмерных форм поверхность может быть разбита на куски, каждый из которых будет описан параметрическим бикубическим уравнением. Поэтому такие поверхности называют параметрические бикубические поверхности.

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

Рис. 7.1. Параметрический бикубический кусок

Параметрические бикубические куски (рис. 7.1), из которых состоят эти поверхности, описываются координатами точек с помощью трех уравнений (по одному для х, у и z). Каждое из уравнений имеет две переменные (два параметра), причем показатели степени при них не выше третьей (отсюда название бикубический). Уравнение для X будет выглядеть следующим образом:

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

В матричной форме уравнение для Х можно описать как: X(S,t)=S∙Cx∙TT, где S=[S3 S2 S 1] T=[t3 t2 t 1]

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

Аналогично записываются уравнения для Y и Z.

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

При использовании обоих методов трехмерное тело представляется в виде замкнутой поверхности.

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

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

· Объем требуемой памяти;

· Простота идентификации ребер, инцидентных вершине;

· Простота идентификации многоугольников, которым принадлежит данное ребро;

· Простота процедуры поиска вершин, образующих ребро;

· Легкость определения всех ребер, образующих многоугольник;

· Простота получения изображения полигональной сетки;

· Простота обнаружения ошибок в представлении (например, отсутствие ребра или вершины или многоугольника).

Рассмотрим подробнее три способа описания полигональных сеток.

Наши рекомендации