Ознакомление с алгоритмом mesh и библиотекой mesh
Вопрос
Мне интересно прочитать и понять алгоритмы 2D-сетки.Поиск в Google показывает много статей и источников, однако большинство из них слишком академичны и не очень подходят для начинающих.
Итак, кто-нибудь здесь порекомендовал бы какие-либо источники для чтения (подходящие для начинающих) или реализацию с открытым исходным кодом, которую я мог бы изучить с самого начала?Спасибо.
Кроме того, по сравнению с созданием треугольной сетки, меня больше интересуют четырехсторонняя сетка и смешанная сетка (четырех- и трехкомпонентная).
Решение
Я поддерживаю ответ Дэвида относительно Джонатан Шевчук сайт как хорошая отправная точка.
С точки зрения программного обеспечения с открытым исходным кодом, это зависит от того, что именно вы ищете.
- Если вас интересует генерация сетки, вы можете ознакомиться с CGALэто код.Понимание низкоуровневых частей кода CGAL - это слишком много для новичка.Однако знакомство с алгоритмами более высокого уровня может быть весьма интересным даже для новичка.Также обратите внимание, что документация CGAL очень подробно.
- Вы также можете ознакомиться с ТетГен, но его исходный код монолитен и не документирован (это скорее программное обеспечение конечного пользователя, а не библиотека, даже если его также можно просто вызвать из других программ).Тем не менее, она достаточно читабельна, и руководство пользователя содержит краткую презентацию генерации сетки с некоторыми ссылками.
- Если вы также заинтересованы в обработке сеток, вы можете ознакомиться с Открытая сетка.
Дополнительная информация о ваших целях, безусловно, помогла бы дать более релевантные рекомендации.
Другие советы
Первая ссылка в вашем поиске Google приведет вас на Джонатан Шевчук Сайт.На самом деле это неплохое место для начала.У него есть программа под названием треугольник который вы можете скачать для 2D-триангуляции.На этой странице есть Ссылка к ссылкам, используемым в создание треугольника, включая ссылку на описание алгоритм триангуляции.
Существует несколько подходов к генерации сетки.Одним из наиболее распространенных является создание Триангуляция Делоне.Триангуляция набора точек довольно проста, и существует несколько алгоритмов, которые это делают, включая алгоритм Уотсона и У Руперта как используется в triangle Когда вы хотите создать ограниченную триангуляцию, где края триангуляции совпадают с краями вашей входной фигуры, это немного сложнее, потому что вам нужно восстановить определенные края.
Я бы начал с понимания триангуляции Делоне.Тогда, может быть, взглянете на некоторые другие алгоритмы создания сетки.
Вот некоторые из распространенных тем, которые вы найдете в статьях о создании сетки
- Надежность - это то, как справляться с ошибками округления с плавающей запятой.
- Качество сетки - обеспечение того, чтобы формы треугольников / тетраэдров были близки к равносторонним.Важно ли это, зависит от того, зачем вы создаете сетку.Для аналитической работы это очень важно,
- Как выбрать, куда вставлять узлы в сетку, чтобы обеспечить хорошее распределение сетки.
- Скорость зацепления
- Генерация четырехугольной / шестигранной сетки.Это сложнее, чем использовать треугольники / тетраэдры.
Генерация 3D-сетки намного сложнее, чем 2D, поэтому многие статьи посвящены 3D-генерации
Генерация сетки - это большая тема.Было бы полезно, если бы вы могли предоставить дополнительную информацию о том, какие аспекты (например, 2D или 3D) вас интересуют.Если вы можете дать некоторое представление о том, что вам нужно делать, тогда, возможно, я смогу найти какие-нибудь лучшие источники информации.