Края определяют неориентированный граф G
, а треугольники представляют собой набор циклов в G
с length=3
.
Геометрические триангуляции, как правило, имеют относительно низкую узловой степени (степень d
этого числа ребер, примыкающих к каждому узлу, d<=10
является типичным для геометрических триангуляции) и, как таковые, здесь является достаточно эффективным O(n*d^3)
алгоритма, который может быть использован для построения множество треугольников.
Настройка графоподобной структуры данных, обеспечивающей доступ к списку ребер, смежных с каждым узлом.
Итерации по всем узлам. Рассмотрим все пары ребер, смежных с данным узлом i
. Для данной пары ребер, смежных с i
, мы имеем потенциальный узловой триплет i,j,k
. Этот триплет является треугольником, если есть узел, соединяющий края j,k
, который можно проверить, просмотрев список краев j,k
.
Повторяющихся треугольники будут сгенерированы наивной реализацией (2)
. Поддерживайте хеш-таблицу треугольников, чтобы отклонить дубликаты триплетов, как они считают.
я предполагал, что ребра определяют действительные непересекающиеся триангуляции, будучи непересекающийся и т.д.
Надеются, что это помогает.
Это набор и набор , где край имеет начало и конец. –
Matthias