В некоторых моделях используется по несколько экземпляров идентичных объектов. Именно такой вариант мы наблюдаем и в нашей модели автомобиля - все четыре колеса в ней идентичны. Совершенно очевидно, что нет необходимости дублировать в каждом узле колеса описание этого геометрического объекта, а следует воспользоваться той же идеей, которую мы уже рассматривали при описании приемов работы с экземплярами, - использовать единственное представление объекта-прототипа. Если выполнить такую трансформацию, наше дерево превратится в ориентированный ациклический граф (ОАГ), представленный на рис. 8.7. Хотя в графе такого типа и существуют циклы, в каждом из них обязательно встречается ребро, направленное навстречу направлению обхода. Следовательно, путь обхода в соответствии с направлением ребер обязательно приведет к терминальному узлу. Работа с ациклическими ориентированными графами не сложнее работы с обычными деревьями. В нашем графе, представляющем модель автомобиля, информацию о положении и ориентации каждого колеса можно хранить либо в описании узла кузова, либо в описаниях ребер, связывающих узел кузова с узлом колеса.

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

8.3. Модель руки робота Робототехника представляет собой благодатное поле для использования методов иерархического моделирования. Рассмотрим упрощенную руку робота, показанную на рис. 8.8,а. Ее модель можно построить из трех простейших объектов или символов, воспользовавшись, например, параллелепипедами и цилиндром. Каждый из этих символов формируется из базовых примитивов.

Три детали (звенья) руки робота показаны на рис. 8.8, б. Механизм имеет три степени свободы, каждая из которых описывается углом поворота в сочленении, связывающем каждое звено с предыдущим". Этот угол определяет, как будет располагаться следующее звено (и все дальнейшие) относительно предыдущего. Первое звено поворачивается относительно всего остального мира. Угол


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