我很难弄清楚如何三角剖分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