Алгоритм чтения по сетке и библиотека сеток - PullRequest
9 голосов
/ 08 октября 2008

Мне интересно читать и понимать алгоритмы 2D-сетки. Поиск в Google показывает много статей и источников , однако большинство из них слишком академичны и не слишком на стороне новичка.

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

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

Ответы [ 2 ]

6 голосов
/ 08 октября 2008

Я второй ответ Дэвида относительно сайта Джонатана Шевчука как хорошей отправной точки.

С точки зрения программного обеспечения с открытым исходным кодом, это зависит от того, что именно вы ищете.

  • Если вы заинтересованы в генерации сетки, вы можете взглянуть на код CGAL . Понимание низкоуровневых частей кода CGAL слишком много для новичка. Однако взглянуть на алгоритмы более высокого уровня может быть довольно интересно даже для новичка. Также обратите внимание, что документация для CGAL очень подробная.
  • Вы также можете взглянуть на TetGen , но его исходный код монолитен и не документирован (это скорее программное обеспечение для конечного пользователя, а не библиотека, даже если его также можно назвать из других программ). Тем не менее, он достаточно читабелен, и в руководстве пользователя содержится краткое представление о создании сетки с некоторыми ссылками.
  • Если вы также заинтересованы в обработке сетки, вы можете взглянуть на OpenMesh .

Более подробная информация о ваших целях определенно поможет предоставить более релевантные указатели.

5 голосов
/ 08 октября 2008

Первая ссылка в вашем поиске Google приведет вас к сайту Джонатана Шевчука . Это на самом деле не плохое место для начала. У него есть программа под названием треугольник , которую вы можете скачать для 2D триангуляции. На этой странице есть ссылка на ссылки, используемые в создании треугольника , включая ссылку на описание алгоритма триангуляции .

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

Я бы начал с понимания триангуляции Делоне. Тогда, возможно, посмотрите на некоторые другие алгоритмы построения сетки.

Некоторые из общих тем, которые вы найдете в статьях генерации сетки:

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

Создание 3D-сетки намного сложнее, чем 2D, поэтому многие статьи посвящены созданию 3D

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...