Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекцния 1 конспект студентам.doc
Скачиваний:
17
Добавлен:
01.05.2019
Размер:
3.68 Mб
Скачать

Дополнительный материал (по желанию)

Дерево CSG обладает следующими преимуществами [1]:

· структура данных проста, а их представление компактно, что облег-чает обработку;

· объемное тело, описываемое деревом CSG, всегда является коррект-ным, то есть его внутренний объем однозначно отделен от внешнего. Примером некорректного объемного тела является тело с лишним ребром. Для него деление объема на внутренний и внешний вблизи вершины, к которой подходит это ребро, оказывается неоднознач-ным;

· представление CSG всегда может быть преобразовано к соответст-вующему представлению B-Rep. Это позволяет взаимодействовать с программами, ориентированными на использование B-Rep;

· параметрическое моделирование легко реализуется изменением па-раметров соответствующих примитивов

Недостатки [1]:

· поскольку дерево CSG хранит историю применения булевских опе-раций, в процессе моделирования могут использоваться только они. Это требование жестко ограничивает диапазон моделируемых объек-тов. Более того, оно исключает использование удобных функций ло-кального изменения, таких как поднятие и скругление;

· для получения сведений о граничных поверхностях, их ребрах и свя-зях между этими элементами из дерева CSG требуется сложные вы-числения. К сожалению, сведения о границах нужны для множества приложений, в частности для отображения тел. Для того, чтобы ото-бразить затушеванное изображение или чертеж объемного тела, нужно иметь информацию о гранях или вершинах этого тела. Поэто-му представление CSG является недостаточным для интерактивного отображения тел и манипулирования ими. Другой пример – расчет траектории движения фрезы с ЧПУ для обработки поверхностей те-ла. Для этой задачи нужны сведения о поверхностях, их ребрах и связности. Получить все эти данные из дерева CSG очень непросто.

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

Вторая структура содержит сведения о границах объема (вершинах, реб-рах, гранях) и их соединении друг с другом. Это представление называется гра-ничным представлением (boundary representation - B-rep). Многие структуры B-rep строятся по-разному в зависимости от того, какой элемент считается основ-ным при сохранении сведений о связности.

Допустим, есть тело, представленное на рис. 3.

Рис 3 Дерево CSG

В структуре B-Rep это тело будет выглядеть, как показано в табл. 1.

Табл 1. Представление тела в структуре B-Rep

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

Структура данных B-Rep выглядит очень простой и компактной. Однако она не используется в развитых системах твердотельного моделирования из-за перечисленных ниже недостатков.

· Структура данных B-Rep ориентирована на хранение плоских много-гранников. Если потребуется сохранить данные о теле с криволиней-ными гранями и ребрами, то строки таблиц граней и ребер придется изменять таким образом, чтобы в них можно было включить уравне-ния поверхности и кривой соответственно (уравнения поверхностей и кривых, а также координаты вершин называют геометрическими данными, тогда как отношения между гранями, ребрами и вершина-ми называют топологическими данными. Данные в любой структуре B-Rep могут быть классифицированы либо как геометрические, либо как топологические). Уравнения для плоских граней сохранять не обязательно, поскольку плоские грани определяются находящимися на них вершинами.

· Грань с внутренними и внешними границами (рис. 4 а) не может быть сохранена в таблице граней, поскольку для нее нужно два списка ребер вместо одного. Такие грани появляются, например, при моделирова-нии объемных тел со сквозными отверстиями. Простым решением этой проблемы является добавление ребра, соединяющего внешнюю и внутреннюю границы (рис. 4 б). В этом случае два списка вершин мо-гут быть объединены. Соединительное ребро называется мостиком или перемычкой (bridge edge) и попадает в список ребер в двух экземплярах.

Рис. 4. Поверхность с двумя границами и метод их обхода

· Количество ребер у разных граней может быть различно (см. табл.1). Более того, невозможно определить заранее количество столбцов (по одному на каждое ребро), которые потребуются для конкретной грани, поскольку это количество может меняться в процессе моделирования. Следовательно, количество столбцов должно сохраняться в виде пере-менной в момент объявления таблицы граней. Работа с таблицей пере-менного размера создает некоторые неудобства.

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

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