Построение контура многоугольника (в частности, триангуляция) - PullRequest
3 голосов
/ 25 января 2009

Как мне построить контур двухмерного многоугольника, который состоит только из треугольников и может иметь отверстия, а внешний контур может быть вогнутым / выпуклым, а отверстия также могут быть вогнутыми / выпуклыми.

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

Относятся ли октре / квадри к этому?

Ответы [ 2 ]

4 голосов
/ 25 января 2009

Я предполагаю, что у вас есть данные в виде наборов из трех точек, которые составляют «заполненный» треугольник, что эти треугольники примыкают вдоль ребер, и что все вершины, которые будут углами полной формы, также являются вершинами все треугольники, которые касаются этой точки. Тогда вам просто нужно найти все ребра, которые не удваиваются, то есть не принадлежат двум примыкающим треугольникам.

1 голос
/ 20 сентября 2012

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

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

Как и в случае с половинками, вы можете использовать другие топологические структуры, такие как крылатый край и т. Д., Но концепция та же.

...