logo
Компьютерная графика / МАШ_ГРАФИКА

§1. Модели (структуры данных) графических объектов

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

Абстрактная модель объекта может быть задана в виде не-которого графа, в котором примитивы, промежуточные эле-менты, объект и операции показаны вершинами, а связи между ними – ребрами. Например, абстрактная модель плоского треугольника ABC (Рис. 6.1) может быть изображена в виде дерева показанного на Рис. 6.2. Нижний уровень содержит примитивы (отрезки), к ним применена операция объединения (U) и в итоге получен треугольник. Представление объекта в виде абстрактной модели указывает последовательность доступа к отдельным элементам или примитивам, входящим в него, а также порядок их обработки при преобразованиях всего объекта.

Для представления абстрактной модели в памяти ЭВМ и последующей работы с ней её необходимо преобразовать в

114

EMBED Рисунок AutoCAD 14

Рис.6.1 Рис.6.2

программную модель, т.е. представить в терминах неко-торого языка программирования либо в каком-либо стан-дартном формате. Рассмотренная выше абстрактная модель треугольника ABC может быть описана при помощи следующего набора одномерных массивов:

  1. TR ( АВ, ВС, АС),

  2. АВ (Х А , Y А , ХB , YB) ,

  3. ВCB , Y B , ХC , YC) ,

  4. АCА , Y А , ХC , YC) ,

где первый массивTR указывает, что треугольник состоит из трёх сторон АВ, ВС и АС, а три последующих массива задают декартовы координаты вершин, образующих эти стороны .

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

115

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

В модели треугольника ABC, представленной на Рис. 6.1, топологическая информация ( а) треугольник является объединением отрезков AB,BC,AC; б) отрезки соединяют пары точек (A,B); (B,C); (A,C) )соединена с геометрической информацией (точки A,B,C имеют плоские декартовы координаты ,,). Такая модель не оптимальна с точки зрения преобразований объекта – при топологических преобразованиях одновременно необхо-димо оперировать с геометрическими характеристиками элементов и наоборот. Оба вида информации в модели желательно разделить. Пример абстрактной модели плос-кого треугольникаABC с разделением топологической и геометрической информации дан на Рис. 6.3. В програм-

Рис.6.3

116

мной модели топологическая информация будет отобра-жена в двухмерном массиве

TR ((TА ,TВ ),(TВ , TС ) ,(T A ,TС ).

Из массива TR следует, что треугольник образован тремя отрезками прямых , которые соединяют между собой точки TА ,TВ , TС . Геометрическая информация представляет собой координаты точек TА ,TВ , TС :

TА = (XA , YA);

TВ = (XB , YB);

TС = (XC , YC).

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

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