Основы САПР (CAD,CAM,CAE) - (Кунву Ли)(2004) (951262), страница 27
Текст из файла (страница 27)
Проблема неопределенности коли- чества р яер у граней ре ег у граней решается без введения связных списков и, следовательно, еб . Последнее объясняет, почему сведения о связности вершин, ребер н ° ", палур ер. оследн граней сохраняются в структуре данных в явном виде. структуре а у связность неявно описывалась самими полуребрам . у ами. Мы же отметили некото- ': .
рую часть сведении о связности: для каждого ребра р реб а сох аняются грани, которым оно принадлежит, соседние ребра и конечные вершины. а СХР7ИЕУРФ НМ>ПП4Ф$йф~~Ф64 Ц НПНРНЫЕ'Мййй ПРЕДДОЖВМЖ ВОМГДРТОХГ ф,4 $:Зэй>нйл 1>др> пиридее;:дубняк>з)гг(о)г)>ержку тел со Скт>онными отверсчч>яма посредством испол>>зоват>ия колец 1%э)„ 'Определим'структуру крыльеных ребер для фигуры, изображенной на рис.
5.33. Ребро Е>. является смежным с четырьмя другими ребрами: Еъ Еъ Ет и Е,, кахглое из которых содержит одну из двух вершин ребра Еь Если рассматривать ребро Е, как фюзеляж самолета, четыре ребра Е,, Ез, Е, и Ез будут его крыльями. Эти четыре смежных ребра называются крыльевыми ребрами Ен Каждое из них должно быть сохранено под отдельным именем с информацией о положении этого ребра относительно Ен Именуются крыльеные ребра так. Вначале Е, назначается определенное направление (рис.
5.33). Злесь ребро направлено от вершины т> к вершине 1>ъ Затем следует представить себе, что ны лежите вдоль ребра Е, так, что голова направлена к >'з (а тело, разумеется, находится снаружи объема). Вытянитеруки и ноги так, как если бы вы летели. Левая рука коснется ребра Еъ правая рука — ребра Еъ левая нога — ребра Е,, правая нога — ребра Е,. Поэтому ребро Е> называют ребром левой руки, Ез — ребром правой руки, Е, — ребром леной ноги, Ез — ребром правой ноги. Если Е, направить в противоположную сторону, Ез будет ребром левой руки, ń— ребром правой руки, Ез — ребром левой ноги и Ез — ребром правой ноги. Направление каждого ребра устанавливается произвольно в момент созлания объемного тела и сохранения его структуры крыльевых ребер.
Цомимо связности ребер в терминах крыльеных ребер необходимо также описать связность граней и ребер. Поэтому для каждого ребра сохраншотся указате., дп па две грани, которым оно принадлежит. Например, для ребра Е, на рис. 5.33 , .сохраняются указатели на ребра Е> и Ез (левое и правое соответственно). Назва.ния ребер определяются направлением Еь Граням присваиваются разные названия по той же схеме, по которой они присваиваются крывьевым ребрам. Брейд предложил использовать кольца для сохранения снедений о телах со сквозными отверстиями в структуре крыльевых ребер. Связь между гранью и ее ребрами задается неявно при помощи колец. Кажлое ребро хранит указатель на свое левое и правое кольца, а не на левую и правую грань.
Например, на рис. 5.33 ребро Е, хранит указатель на Е> как на левое кольцо и на Ез как на правое кольцо. Если направление Е, изменить на противоположное, названия колец также изменятся. Кольца содержат указатели на все ребра, которые к ним относятся. Это дает возможность получить список всех ребер одного кольца Процедура аналогична получению списка полуребер начиная с любого произвольного полуребра, на которое имеется указатель в кольце.
Теперь рассмотрим описание связности ребер и вершин. Вспомните, что у кажлого ребра на концах находятся вершины. Эти вершины сохраняются под именами предыдуитая вершина (ртео>оиз се>тех или таЫ овтсех) и последующая вершина (пехг ие>тех или г>ва>Г ое>гвх), поскольку все ребра имеют направления. На рис. 5.33 > > является предыдущеи вершиной лля Ен а йт — последующей.
Сохраняются не . только указатели на вершины в структурах ребер, но и указатели на ребра в структурах вершин — по одному ребру для каждой вер>пины. Это позволяет выделить ребро, начиная с которого перечисляются все ребра, сходящиеся в одной вершине. При реализации функций моделирования, в особенности содержащих >, Рна. В.ЗЗ. Определение структуры крыльевык ребер Следующая вершина Ребро правой руки Вершина Ребро — к- Правое кольцо Ребро Ребра правой ноги Кольцо Левое кольца -е —— Ребро >'.>г Ребро левой ноги Предыдущая вершине Рна. 5.34.
Связность вершин, ребер н гранен Помимо описанных связей сохраняются так>хе связи между гранями н их нпдггив -;-.> цами, как в структуре данных полурсбер. А именно, для каждой грани сохраняир' ся указатель на ее внешнее кольцо, а лля внешнего кольца сохраняется укгьзатеиЬ на кольцо отверстия, если и даши>й грани оно есть Кольцо отверстия может уд>х> зывать на другое кольцо отверстия, если н грани отверстий несколько; н против" г>.
ном случае оно указывает обратно на внешнее кольцо (рис. 5.35). Кроме тско, дди кажлого кольна сохраняется указатель нв его ролительскуго грань. Заьтетйтге„' =?" что здесь используется олносвязньш список, а ие двусвязный, квк на рис. 53О., - '1 ВыГюр односвязного нли днусвязного списка определяется тем, что считается й Г>олсс важным — эффективность обращения к лаиным или компактность стру>с- туры. Рна.
В.зб. Связи между гранью н ее кольцами Пример реализации структуры данных крыльсных ребер на языке С демо>згтри- рует листинг Б.1 н приложении Б. Эта структуре данных используется и системе 6~1 тнердотслын>го моделирования 5>з(>МОГ>, разрвГютапной в Сеульском госулар' ';.'В>, операторы-'Эйлера (см,' раздел 5.3.3),:йргзходт>таят яяагтн>прпсматрййМъкпцэы~"йй",".,.'>.. бер; сходящихся в одной верн>нне. Описанные способы сохранения информации о связности верши»;: ребе(э:и Ф~уаи ', „'>>' ней иллюстрирует рис.
5.34. 'С1эййуйОМГУ4цббра"ЕйЕФМ:-В.::.~ВрЕЕ;; В;Лцотаацто йяйбйясякуЕГ й~НГЫй,зя - - -. бИ,„я лоаяя 1(яззз1)'. 06Щзнчка"- Вю.,грехмерггое ржшгифеиие', кольца, то есть список граа 'цейт 46рагзувщих замкиутйй объем. Обычно в 'объемном 'теле может быть только 'одйа'оболочка, если.в нем нет полостей. Полость в объемном теле — это трехмер'ное расаширевие кольца отверстия в грани. Следовательно, концепция оболочки йоьзволяет описывать объемные тела с полостями точно так же, как концепция кольца отверстия позволяет описывать грань с отверстиями. >: Нввмотря иа то что эта процедура практически идентична прнцедуретарврзайрг1а нация растра, проверка пересечении тела и кубика требует' больших вычислеццйл чем аналогичная двумерная задача'.
Воксельное представление объемногсг тена,'- имеющегп форму бублика, демонстрирует рис. 5.36. ' ' ~,'труктуре декоипоззациоиной модели :.:;.'Объемная модель может быть приближенно представлена в виде совокупности :,::;простых тел, например кубов. Такая модель называется декомлозит1ионпой :,,(Йсотроябогт гэо~Ы). Можно предложить много декомпознционных моделей ' описания одного и того же тела. Модель включает в себя простейшее тело и ме' зттзд объединения в совокупность.
К типичным декомпозиционным моделям с соответствующими структурами данных относятся воксельное представление, ,' представление октантного дерева и ячеечное представление. :-; Воксельное представление .„Вексельное представление (оохе1 гертеаепгайоп) объемного тела — зто просто 'трехмерный аналог растрового представления плоской фигуры. Чтобы расска','зать о воксельном представлении, нам придется вспомнить процедуру получения растрового представления или растрового изображения. Растровое изобра-' жение двумерного объекта формируется следующим образом. Сначала создается ".
квадрат, размер которого соответствует интересующей нас области двумерного ": црострапства. Затем квадрат делится на много маленьких квадратиков путем нанесения на него линий сетки. Расстояние между линиями сетки определяется ' желаемой точностью растрового представления. Другими словами, если это расстояние будет очень маленьким, то растровое изображение будет очень точно воспроизводить форму исходного двумерного объекта. В противном случае получится лишь грубое приближение.
Квадрат, содержащий много маленьких квадратиков, представляется в компьютере в виде двумерного массива, количе, ство элементов в котором совпадает с количеством квадратиков. Наконец, большои квадрат накладывается на двумерный объект, и элементы массива, соответствующие квадратикам, находящимся нэд объектом, получают значение 1, а 'остальные элементы получают значение О.
Получившийся массив пулей и еди.ниц становится растровым представлением двумерного объекта. Воксельпое представление объемного тела получается при помощи той же процедуры, что и растровое представление. Однако начинается она не с большого квадрата и маленьких квадратиков, а с большого куба и маленьких кубиков, называемых еокселаии'. Деление на вокселы осуществляется сеткой плоскостей, : Расположенных на равном расстоянии друг от друга перпендикулярно осям х, у ; и а.
Исходный куб представляется в виде трехмерного массива, количество эле, мептов которого совпадает с количеством кубиков, и каждому элементу массива присваивается значение О или 1 в зависимости от положения элемента в теле. Воксе ксел — зто трехмерный аналог пиксела. Последние четыре буквы названия взяты от '.',слова япнксель (р!хе!), а первые две — от слова яобъемь (чо!шпе).
рис. В.ЗВ. Визуализация вексельного представления (благодаря любезности АСМ, 1ос.) Воксельное представление обладает следующими преимуществами. О Воксельное представление позволяет точно или по крайней мере приблизительно описать объемное тело совершенно произвольной формы. Например,::.':,-',' модели человеческих костей и органов часто являются воксельными предстаэлениями данных цифровой томографии. Моделировать такие формы при помощи обычных функций очень сложно. Даже применение сложных процедур, описанных в разделе 5.3.1, все равно не позволяет построить точную модель'. О Воксельное представление позволяет с легкостью рассчитывать такие параметры объемного тела, как масса и моменты инерции.
Расчет осуществляется путем суммирования параметров отдельных вокселов. Также легко получить результат булевской операции. Вообще говоря, для этого достаточно всего лишь применить булевскую операцию к целочисленным значениям соответствующих вокселов двух тел. [Э Хотя воксельное представление предназначено для описания объемного тела в пространстве, оно автоматически описывает и пространство вне тела.
Поэтому оно удобно для расчета объема полых струкгур. Применимо оно и для расчета траекторий движении роботов, уклоняющихся от препятствий, по-' скольку воксельное представление препятствий содержит и информацию о свободном пространстве. Есть у воксельного представления и некоторые недостатки. О Объем памяти, требуемый для хранения воксельного представления тела; резко возрастает с уменьшением размеров вокселов, Размер вокселов опреде-,,',, ляет точность приближения исходного тела, поэтому моделирование может потребовать предельного его снижения. 0 Воксельное представление по определению является приближенным описанием исходного тела Поэтому систем твердотельного моделирования, в которых оно является основным математическим описанием объектов, довольно мало.