Алгоритм построения сети методом треугольных подразбиений
Алгоритм и основные этапы построения треугольной сети для заданной посредством контрольных точек поверхности NURBS. Сравнительная характеристика и анализ преимуществ использования двух распространенных методов подразбиений – Loop и Modified Butterfly.
Рубрика | Математика |
Вид | статья |
Язык | русский |
Дата добавления | 21.06.2018 |
Размер файла | 30,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Алгоритм построения сети методом треугольных подразбиений
Рассмотрим двумерную поверхность S, заданную посредством контрольных точек, см. [1]. Таким образом, в нашем распоряжении имеется множество контрольных точек, веса, последовательность узлов i= -1, …, L+1; j=-1, …, M+1; n=0, …, L; k=0, …, M. И соответствующая поверхность NURBS представлена в следующей параметрической форме:
треугольный подразбиение алгоритм
В системах CAD, треугольные подразбиения имеют определенные преимущества перед прямоугольными [1]. К примеру, они не подвержены определенным видам вырожденности и лучше подходят для описания сложных геометрических объектов.
Нашей целью является построение треугольной сети отвечающей следующим условиям [2,3]. Треугольники должны удовлетворять определенному соотношению сторон, проще говоря, они должны быть максимально близки к правильным треугольникам. Вершины треугольников должны принадлежать данной поверхности S. Расстояние d между треугольником и поверхностью должно быть меньше предписанного (пользователем) числа. Кроме того, пользователь должен иметь возможность адаптивно менять сеть (например, плотность сети в определенных областях).
Без потери общности, будем рассматривать поверхность S, заданную в виде бикубического B-сплайна.
Шаг 1. Трансформируем данный бикубический B-сплайн в бикубическую форму Bezier. Это является стандартной процедурой в CAGD ([1]), и она может быть реализована подпрограммой, скажем, «Bezier». Предположим, теперь у нас есть прямоугольная сеть точек , и все они принадлежат S (см. [6]). Рассмотрим прямоугольную область R, натянутую на точки A, что имеет место гомеоморфизм
g: R>S, .
Вообще говоря, мы можем рассмотреть многогранник P вместо прямоугольника R, где ([3]).
Шаг 2. Чтобы построить начальную сеть, мы выбираем точки из множества . Мы хотим, чтобы начальная сеть удовлетворяла требованию соотношения сторон (aspect ratio). Подпрограмма, скажем, «Initial» использует технику диагонального транспонирования [3]: она рассматривает прямоугольник , сравнивает и , и выбирает кратчайшую диагональ, чтобы разбить прямоугольник на два треугольника.
Шаг 3a. Для процесса подразбиения, мы предлагаем интерполяционную Modified Butterfly схему ([4]). Она является С1-непрерывной на регулярных сетях. В отличие от аппроксимирующих схем, основанных на сплайнах, она не дает кусочно-полиномиальной поверхности в пределе. Мы можем предполагать, что поверхности подразбиений (R) приближаются к заданной поверхности S. Здесь > f, и f (R) является поверхностью подразбиения. После четвертого шага подразбиения, мы получаем соответствующую треугольную сеть (см. [7]).
Пользователь может интерактивно менять уровень подразбиения в различных областях. Эту подпрограмму мы назвали «Subdivision».
Шаг 3b. Вместо Modified Butterfly схемы, иногда выгоднее использовать другие треугольные схемы. Одной из наиболее популярных схем является аппроксимирующая Loop схема [4]. В сущности, это простейшая схема вставки вершин в треугольные сети, предложенная Чарльзом Лупом. Схема основана на так называемом трехнаправленном коробчатом сплайне, она генерирует C2-непрерывные поверхности на регулярных сетях. В общем же случае, Loop схема генерирует поверхности, которые C2-непрерывны всюду, за исключением особых вершин, где они являются C1-непрерывными. Схема может быть применена к произвольным «многоугольным» сетям, т.е. состоящим из многоугольников. «Многоугольная» сеть преобразуется в треугольную, к примеру, посредством триангуляции каждой многоугольной грани. Программа подразбиений была написана моим коллегой Никитой Кожекиным на Microsoft Visual C++, используя MFC (Microsoft Foundation Classes) технологию, OpenGL и VTK (свободно-распространяемый инструмент визуализации).
Шаг 4. После k-того уровня подразбиений мы проектируем (посредством подпрограммы «Projection») сеть на поверхность S.
Шаг 5. Теперь мы проверяем условие, что соответствующие треугольники плотно прилегают к поверхности S, для чего измеряем расстояние от барицентра треугольника до поверхности. Назовем эту подпрограмму «Distance». Чтобы сеть соответствовала предъявляемым к ней требованиям, мы можем использовать метод [5] для разбиения больших треугольников в несколько меньших по размеру.
Литература
треугольный подразбиение алгоритм
1. Gerald Farin «Curves and surfaces for CAGD» // Academic press, 1993.
2. Ho-Le K. «Finite element mesh generation methods: review and classification» // Computer-Aided Design, 20:27-38, 1988
3. K.-J. Bathe «Finite Element Procedures» // Prentice-Hall, 1996
4. «Subdivision for Modeling and Animation» // SIGGRAPH 99 Course Notes.
5. Rivara M.C. «Algorithms for refining triangular grids suitable for adaptive and multi-grid techniques» // Int. J. Numer. Meth. Eng. Vol 20 (1984) pp. 745-756.
6. Dmitry Berzin «Finite element mesh generation using subdivision technique» // Международный научно-исследовательский журнал = Research Journal of International Studies, №8 (27) 2014, p. 6
7. Dmitry Berzin «Finite element automatic mesh generation using Modified Butterfly subdivision scheme» // Международный научно-исследовательский журнал = Research Journal of International Studies, №8 (27) 2014, p. 8
8. Dmitry Berzin «Finite element mesh automatic generation using triangilar subdivision schemes» // Международный научно-исследовательский журнал = Research Journal of International Studies, №9 (28) 2014, p. 5
Размещено на Allbest.ru
Подобные документы
Эйлеровы цепи и циклы, теоремы. Алгоритм построения эйлерова цикла. Обоснование алгоритма. Нахождение кратчайших путей в графе. Алгоритм Форда отыскания кратчайшего пути. Задача отыскания кратчайших расстояний между всеми парами вершин. Алгоритм Флойда.
реферат [108,4 K], добавлен 01.12.2008Алгоритм построения минимального остовного дерева. Последовательность выполнения алгоритма Прима, его содержание и назначение. Процедура рисования графа. Порядок составления и тестирования программы, ее интерфейс, реализация и правила эксплуатации.
курсовая работа [225,0 K], добавлен 30.04.2011Задача целочисленного линейного программирования, приведение к канонической форме. Общие идеи методов отсечения. Алгоритм Гомори для решения целочисленных задач линейного программирования. Понятие правильного отсечения и простейший способ его построения.
курсовая работа [67,5 K], добавлен 25.11.2011Остовное дерево связного неориентированного графа. Алгоритм создания остовного дерева, его нахождение. Сущность и главные особенности алгоритма Крускала. Порядок построения алгоритма Прима, вершина наименьшего веса. Промежуточная структура данных.
презентация [140,8 K], добавлен 16.09.2013Классификация различных точек поверхности. Омбилические точки поверхности. Строение поверхности вблизи эллиптической, параболической и гиперболической точек. Линии кривизны поверхности и омбилические точки. Поверхность, состоящая из омбилических точек.
дипломная работа [956,7 K], добавлен 24.06.2015Вид графов, используемых в теории электрических цепей, химии, вычислительной технике и в информатике. Основные свойства деревьев. Неориентированный граф. Алгоритм построения минимального каркаса. Обоснование алгоритма. Граф с нагруженными ребрами.
реферат [131,8 K], добавлен 11.11.2008Тела Платона, характеристика пяти правильных многогранников, их место в системе гармоничного устройства мира И. Кеплера. Агроритм построения треугольника средствами Mathcad. Формирование матрицы вершины координат додекаэдра, график поверхности.
курсовая работа [644,0 K], добавлен 19.12.2010Нелинейные уравнения, определение корней. Первая теорема Бальцано-Коши. Метод бисекций (деления пополам) и его алгоритм. Использование линейной интерполяции граничных значений заданной функции в методе хорд. Тестовое уравнение, компьютерный эксперимент.
реферат [104,3 K], добавлен 10.09.2009Теоретико-числовая база построения СОК. Теорема о делении с остатком. Алгоритм Евклида. Китайская теорема об остатках и её роль в представлении чисел в СОК. Модели модулярного представления и параллельной обработки информации. Модульные операции.
дипломная работа [678,3 K], добавлен 24.02.2010Постановка задачи коммивояжера и основные алгоритмы решения. Маршруты и пути. Понятия транспортной сети. Понятие увеличивающая дуга, цепь, разрез. Алгоритм Флойда-Уоршелл. Решение задачи аналитическим методом. Создание приложения для решения задачи.
курсовая работа [541,3 K], добавлен 08.10.2015