我正在嘗試撰寫一種演算法,用于使用給定平面(用平面上的點和單位法線向量定義的平面)切割鑲嵌網格。此外,該演算法應該對所有多邊形進行三角剖分并在分割后填充孔。我遇到了一個問題,要找到位于平面上的多邊形(如影像上的橙色平面)

我試圖處理所有三角形的所有邊,并找到那些位于平面上的邊并將它們存盤在一個陣列中。之后,我通過搜索下一個合適的邊形成了一個頂點陣列。
有人可以解釋一種更簡單快捷的方法來找到這個多邊形嗎?
所有頂點必須按 CCW 順序存盤。
uj5u.com熱心網友回復:
通過端點的索引(或標簽)識別您切割的所有邊。確保每條邊都恰好屬于兩個面并被切割兩次。還要確保將交點產生的邊緣定向與面法線的方向一致。
現在,相交邊形成了一條鏈,您可以通過排序來重建它:分別存盤端點的索引,每個索引都有一個指向原始邊的鏈接。對索引進行排序后,公共頂點將成對出現在排序后的陣列中。使用此結構,您可以跟蹤多邊形。
在下面的示例中,從面 aebf、bcgf、cdgh 和 dhea,您按某種順序生成邊 ae-dh、bf-ae、cg-bf 和 dh-cg。分割端點并排序后,ae-、-ae、dh-、-dh、cg-、-cg、bf-、-bf,生成回圈ae-dh、dh-cg、cg-bf、bf-ae .

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/427024.html
