-1
即時使用Mesh庫處理以創建基於點陣列的三角形網格。 我的問題是,這個庫只能返回組成三角形的線條而不是三角形本身。 沒有人知道如何獲得所有的三角形?找到線陣列中的所有三角形(Delaunay圖)
庫是在這裏:http://leebyron.com/mesh/
and here's a picture for refrence
即時使用Mesh庫處理以創建基於點陣列的三角形網格。 我的問題是,這個庫只能返回組成三角形的線條而不是三角形本身。 沒有人知道如何獲得所有的三角形?找到線陣列中的所有三角形(Delaunay圖)
庫是在這裏:http://leebyron.com/mesh/
and here's a picture for refrence
好問題。首先,解決方案是採取可以給你想要的格式的圖書館。你需要 Delaunay三角剖分而不是Delaunay圖,這個庫提供了什麼。
可以從結果庫中獲取三角形提供很簡單。如果內部圖示點具有邊緣(getLinked()方法),則比它是n
三角形的一部分。三角形的其他邊由 按角度分類。如果點是外(在凸包上)比一對邊之間的角度大於180度,那麼這對三角形不存在。
算法是這樣的:
for each point p1:
neighbours = delaunay.getLinked(p1)
sort neighbours by angle to point p1
for i=0 to size(neighbours)
p2 = neighbours[i]
p3 = neighbours[(i+1) % size(neighbours)]
if (angle(p3, p1) - angle(p2, p1)) % 360deg > 180deg:
continue # Outer triangle
if p2 > p1 and p3 > p1:
continue # Already processed
print result triangle (p1, p2, p3)
檢查(P2,P3> P1)是去除相同trinagles,由於每個三角形產生三次。
您是否嘗試過使用Google將「將線條集轉換爲三角形」來查找可能對您有幫助的算法?當你嘗試他們時發生了什麼? –
我找不到任何東西不會永存...... –
我想要一個不同的圖書館或許 –