我很難弄清楚如何三角剖分x單調多邊形。我參考this article。我不明白如何檢查頂點是否是耳朵,以及是否有對角線。三角剖分x單調多邊形
0
A
回答
0
您可以參考ear cutting這是一個n^2時間算法。有很多簡單的算法來對一個簡單的多邊形進行三角剖分。最簡單的n log n時間算法之一包括首先將簡單多邊形分解爲單調片段,然後對這些片段進行三角測量。這種情況下的分裂需要n log n。就你而言,因爲你已經有單調片段,所以你可以在線性時間內很容易地對x單調多邊形進行三角測量。
對這個簡單算法的一個很好的解釋例如在書Computational Geometry中給出。
粗略的想法是:你知道你的多邊形是x-單調的。因此,你將它分成兩個單調鏈(上和下)。現在,您可以沿着兩條鏈走,並在兩條鏈之間插入對角線,而無需查看可見性。只要下一個較低鏈的頂點具有較小的x值,就沿着上層鏈走。如果您的頂點是反射,則將其放在堆棧上,否則將對角線插入另一邊。當您在另一條鏈上進行下一步時,首先將對角線插入堆棧中的每個頂點,然後繼續執行此例程。
+0
這就是我要做的。謝謝。 – monsterman
1
請參閱第13/25頁「三角測量:理論」。該圖說明了一個測試,看看p是否是耳朵上的頂點。它的鄰居是q和r。如果線段qr是對角線,則p在耳朵上。
通過測試是否有其他頂點位於其上或其他任何邊緣線段是否跨越線段,測試線段以查看其是否爲對角線。
相關問題
- 1. 使用約束delaunay三角剖分三角剖分多邊形
- 2. 多邊形的三角剖分
- 3. Libgdx多邊形三角剖分
- 4. 單調多邊形的Delaunay三角剖分
- 5. 由於約束Delaunay三角剖分而識別出多邊形三角剖分
- 6. 基於BSP的多邊形三角剖分的實例
- 7. Delaunay使用孔對二維多邊形進行三角剖分
- 8. 使用matplotlib對多邊形進行三角剖分
- 9. 使用單調多邊形的多邊形三角網
- 10. Delaunay三角剖分:太多的三角形
- 11. x的左邊三角形
- 12. 如何從凹形Delaunay三角剖分中切出三角形?
- 13. 生成具有固定內邊的多邊形三角剖分的算法?
- 14. 最小化凸多邊形三角剖分對角線總和的算法?
- 15. osmdroid多邊形 - 三角形
- 16. 多邊形三角形c#
- 17. 將三角形多邊形劃分爲更小的多邊形
- 18. 三維Delaunay三角剖分
- 19. L形區域的三角剖分
- 20. Delaunay三角剖分的合成三角形的尋找面積
- 21. OpenCV:從Delaunay三角剖分提取三角形
- 22. 如何從3D Delaunay三角剖分中獲得三角形
- 23. vtkDelaunay3D保存三角剖分
- 24. 粗化2.5D三角剖分
- 25. Delaunay三角剖分opencv C++
- 26. 瞭解Delaunay三角剖分
- 27. 點雲Delaunay三角剖分
- 28. 3D三角形 - 三角形交叉點多邊形
- 29. opengl中的三角形多邊形三角形es
- 30. 多邊形三角形計數優化
歡迎來到StackOverflow!雖然這是一篇很好的文章,但如果URL更改,此問題可能會很快過時。請張貼一些示例代碼作爲您主題的主要內容。 – cdomination
我還沒有任何代碼,因爲我找不出算法。 – monsterman