Отношения между компонентами в модели можно представить и абстрактно, и наглядно - в виде графа. С точки зрения математики граф состоит из множества узлов и ребер. Ребра связывают пары узлов, причем не исключен вариант, когда некоторый узел связывается сам с собой. С ребрами можно ассоциировать направление связи, и в этом случае граф называется ориентированным. Ребро ориентированного графа исходит из одного узла и заходит в другой.

Мы будем работать с графами одного из самых распространенных видов - древовидным графом (или деревом). Деревом называется конечный связный ориентированный граф, не имеющий циклов (замкнутых путей). Каждый узел дерева, кроме одного - корня, - имеет точно одно заходящее в него ребро. Следовательно, каждый узел имеет точно один родительский узел, с которым его связывает заходящее ребро. Но любой узел может иметь одно, ни одного или несколько исходящих ребер, а соответственно один, ни одного или несколько дочерних узлов. Узел, не имеющий дочерних, называется терминальным узлом, или листам дерева. На рис. 8.6 показано дерево, представляющее отношения между компонентами нашей модели автомобиля. Корнем дерева является объект кузова, а все четыре объекта, представляющие колеса, - его дочерними узлами. Хотя математический граф представляет собой набор узлов и ребер, при программной реализации с узлами и ребрами связывается дополнительная информация. В рассматриваемом примере с каждым узлом может быть связано описание соответствующего Неясно, колесо ли заставляет двигаться автомобичь, ит движение кузова заставляет вращаться колесо. С точки зрения графической программы скорее всего последний вариант более приемлем.

{

float s= ...; /* скорость */ float d[3]={...}; /* направление */ draw_right_front_wheel(s, d); draw_left_front_wheel(s,d); draw_right_rear_wheel(s,d); draw_left_rear_wheel(s,d); draw_chassis(s,d);

}

Рис. 8.4. Модель автомобиля

Два кадра мультфильма

Рис. 8.5. Два кадра мультфильма

Иерархические графические модели

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


⇐ Предыдущая| |Следующая ⇒