русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Программы компьютерной графики


Дата добавления: 2013-12-23; просмотров: 1537; Нарушение авторских прав


Методы классического твердотельного моделирования

Методы поверхностного моделирования

Методы каркасного моделирования

Каркасные методы моделирования представляют грани трехмерных объектов граничными линиями и конечными точками (вершинами) этих линий. Отображаемая каркасная модель - это просто рисунок каркаса контура. На рис. 2 показана каркасная модель куба и ее математическое описание.

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

 

 

Рис. 2. Каркасная модель куба.

 

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

- Интерполяция .вводимых точек ( нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений);

- интерполяция указанной сетки кривых линий;

- протягивание или вращение указанной кривой линии.

Системы поверхностного моделирования используются при моделировании трехмерных объектов со сложными поверхностями главным образом для двух целей:



- фотореалистическое отображение модели используется, чтобы оценить модель эстетически;

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

 

Функции моделирования, поддерживаемые большинством систем твердотельного моделирования могут быть разделены на две группы:

1. Функции создания примитивов, сохраняемых заранее, и настраиваемых по их размерам. Функции добавления или вычитания частей тела также принадлежат к этой группе. Они называются булевыми операциями.

Функции создания примитивов восстанавливают тело из числа примитивных тел, сохраняемых в библиотеке заранее и создают тело с тем же самым каркасом, но с размером, указанным пользователем. На рис. 5. показаны примитивы, поддерживаемые большинством систем твердотельного моделирования (в том числе и MicroStation).

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

 

 

 

Исходные примитивы для выполнения булевых операций

 

рис. 6

На рис.6 приведен пример двух примитивов - параллелепипеда – тело А и цилиндра - тело В.

Булевы операции, поддерживаемые большинством систем твердотельного моделирования - это операции объединения, пересечения и вычитания. На рис. 7 а), 7 б) и 7 в) показаны результаты этих операций для тел А и В.

Относительные местоположения и ориентации этих двух примитивов должны быть определены перед выполнением булевых операций. Булевы операции можно применять к двум любым телам, а не только к примитивам.

 

 

При использовании булевых операций следует избегать ситуаций, которые приводят к недопустимым телам. Рис. 8. иллюстрирует случай, когда после операции пересечения тел В и А будет получена поверхность, а не тело.

 

 

 

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

 

 

2. Функции параметрического моделирования, которые создают телоперемещением параметрического плоского контура и накладыванием ограничений. Вращение или перемещение –sweeping, натягивание – skinning, поворот (вращение плоского контура) – swining, наложение ограничений и скругление поверхностей (фасок) .

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

 

 

Рис.18

На рис. 18. показаны типовые технологические параметризованные макроэлементы – скругление(рис. 18. а), фаска рис. 18. б), сквозное отверстие рис. 18. в), вырез рис. 18. г), выступ рис. 18. д), бобышка рис. 18. е).

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

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

 

 

 

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

 

 

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

 

 

 

Рассмотрим структуры данных в различных форматахдля однозначного математического описания тел. Можно выделить три основных структуры данных для твердотельного моделирования:

1. Представление конструктивной объемной геометрии (constructive solid geometry

(CSG)). CSG представление сохраняет в некотором графе хронологию применения булевых операций на примитивах. Этот граф называют CSG деревом. CSG представление сохраняет последовательность применения булевых операций на примитивах.

 

CSG представление имеет следующие преимущества:

- Структура данных проста и компактна. Соответственно, управление данными будет простым.

- Тело, сохраненное в CSG дереве будет всегда правильным телом.

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

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

Недостатки:

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

- Требуется выполнить большой объем вычислений, чтобы из CSG дерева получить

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

2. Граничное представление (boundary representation (B-Rep )) сохраняет граничную информацию для тела (вершины, ребра и грани вместе с информацией относительно того, как они связаны между собой). Эту структуру данных называют B-Rep структурой данных. Последовательность ребер для каждой грани определяется против часовой стрелки, когда тело рассматривается с его внешней стороны. Это правило позволяет иметь информацию о том, где находится внутренняя и внешняя часть тела, т.е. можно для любой точки определить, расположена ли она на внутренней или внешней части тела.

 

3. Декомпозиционная модель (decomposition model) сохраняет тело как агрегат из простых тел типа параллелепипедов. Можно выделить три типа таких моделей:

- Вокселные модели;

- Модели в форме дерева октантов (octree);

- Ячеечные модели.

Вокселная модель – это трехмерное расширение растрового представления двумерных форм (воксел - трехмерный аналог пиксела: pixel - picture element, voxel - volume element).

Напомним основы растрового моделирования. Сначала создается квадрат области моделирования. Затем эта область разделяется на много маленьких квадратов линиями координатной сетки. Выбор интервалов между линиями координатной сетки зависит от желаемой точности растрового представления. Квадрат области моделирования, содержащий много маленьких квадратов, представляется в компьютере двумерным массивом. Элементы массива, соответствующие маленьким квадратам, перекрывающим моделируемые объекты, имеют значение 1, а остающиеся элементы имеют значение 0. Таким образом, массив из 1 и 0 является растровым представлением двумерного объекта.

Представление трехмерного тела основано на такой же процедуре, как и растровое представление. Большой куб области моделирования разделяется на маленькие кубы, называемые вокселами, с помощью объемной сетки с равным шагом по осям x, y и z. Этот куб представляется в компьютере трехмерным массивом, каждый элемент которого имеет значение 1 или 0, в зависимости от позиции воксела в моделируемом теле. Хотя процесс получения вокселной модели почти такой же, как процесс растеризации, обнаружение перекрытия между телом и вокселом требует более сложных вычислений, чем вычисления в процессе растеризации.

 

Вокселные модели имеют следующие преимущества:

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

- Легко вычислять массо-инерционные параметры тел простым суммированием соответствующих параметров вокселов.

- На таких моделях очень просто выполнять булевы операции.

- Легко моделировать препятствия при движении роботов.

Однако вокселные модели имеют и недостатки: - Требования к затратам памяти резко увеличивается при повышении точности моделирования. - Вокселные модели принципиально являются только приближенными.

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

 

Рис. 15. Модель в форме дерева октантов

 

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

Процедура получения модели в форме октантов следующая. Сначала создается исходный куб области моделирования, который полностью содержит тело, которое будет моделироваться. Этот куб называется корневым октантом. Затем корневой октант разделяется на восемь октантов и рассматривается взаимное пространственное отношение каждого октанта относительно моделируемого тела. Если октант расположен полностью в теле, то он отмечается как "черный" (рис. 16.). Если он расположен полностью вне тела, он отмечается как "белый" (рис. 16.). Если он расположен частично внутри и частично снаружи тела, то он отмечается как "серый" (рис. 16.) и только такой октант разделяется в дальнейшем на восемь дочерних октантов. Октанты, отмеченные как черные или белые, далее не разделяются.

Этот шаг рекурсивно повторяется до тех пор, пока не останется более серых октантов. Множество черных октантов в полученном дереве и будут моделировать тело. Рис. 16. иллюстрирует дерево октантов, сгенерированное для тела, показанного на рис. 15. Число октантов, которые будут храниться в памяти, намного меньше, чем число вокселов в вокселных моделях, т.к. октанты отмеченные как черные или белые не участвуют далее в разделениях.

 

Рис. 16. Дерево октантов

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

 

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

Перенос точки из положения в новое положение можно выполнять по формулам типа

где — приращение по координате . Однако удобнее операции преобразования представлять в единой матричной форме

  (1)


где — преобразующая матрица. Выражение для сдвига с одновременным поворотом имеет вид

где , — матрица сдвига, — матрица поворота.

Представление графических элементов в растровой форме требуется для отображения этих элементов на битовую карту растровой видеосистемы. Растр - точечная (в виде совокупности точек) структура графического изображения при полиграфической и цифровой печати.

Цель процесса растрирования ≈ сделать этот процесс невидимым. Правильно выполненное цифровое растрирование создает иллюзию непрерывного тона. Это достигается с помощью амплитудного (AM =полутонового) растрирования, в рамках которого точки переменного размера размещаются в регулярной матрице. Области изображения, составленные из больших точек, воспринимаются как более темные тона, а из небольших точек ≈ как более светлые.

Растровая форма описывается тремя параметрами: пространственной частотой (плотность растра), формой точки и углом поворота. Каждый из этих факторов по-своему влияет на качество отпечатанного изображения.

 

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

 

 

если , то иначе

 

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

 

Выделение окна требуется при определении той части сцены, которая должна быть выведена на экран дисплея.

 

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

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

Моделирование эффектов отражения света от поверхности объекта в геометрических моделях называют рендерингом. Закраска матовых поверхностей основана на законе Ламберта, согласно которому яркость отраженного от поверхности света пропорциональна , где — угол между нормалью к поверхности и направлением луча падающего света. В алгоритме Гуро яркость внутренних точек рассматриваемой поверхности определяется линейной интерполяцией яркости в вершинах многоугольника. При этом сначала проводится интерполяция в точках ребер, а затем по строкам горизонтальной развертки. Более реалистичными получаются изображения в алгоритме Фонга, основанном на линейной интерполяции векторов нормалей к поверхности.

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

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

В подсистемах графики и геометрического моделирования используются параметрически задаваемые кубические кривые

  (1)


где .

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

рис. кривая Безье

 


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

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

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

Сравнения : -Растровое изображение строится из множества пикселей.
-Векторное изображение описывается в виде последовательности команд.

-Растровые рисунки эффективно используются для представления реальных образов.
-Векторная графика не позволяет получать изображения фотографического качества.

-При масштабировании и вращении растровых картинок возникают искажения.
-Векторные изображения могут быть легко преобразованы без потери качества.

-Растровые рисунки могут быть легко напечатаны на принтерах.

- Векторные рисунки иногда не печатаются или выглядят на бумаге не так, как хотелось бы.

 

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

 



<== предыдущая лекция | следующая лекция ==>
Типы геометрических моделей | Графические редакторы предназначены для создания, сохранения и воспроизведения графических изображений. Различают редакторы векторные и растровые.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.