任务
从一组不重叠(但接触)的多边形计算对偶图。
例子
多边形A、B和C,它们的部分共享坐标 1-22(黄色)和对偶图(蓝色)。
数据
我有一组多边形。每个多边形P i都表示为坐标的有序列表。多边形P i的边a - b记为P i,(a,b)
主意
多边形代表面,因此代表对偶图的节点。要识别多边形P i的相邻面,只需将P i的每条边与每个其他多边形P j的每条边进行比较。如果边由另一个多边形共享,则P i和P j是相邻的。
这将创建大量的多个边缘,这些边缘可以在以后移除。
问题
该算法不是很有效,因为它在O(E 2 )中运行,其中E表示多边形集合S的边数。
改进思路
在第一步中创建一个边缘索引。这会将运行时间减少到O(2×E) = O(E)
删除每个度数为 2 的节点。(我认为这不会影响对偶图?)
问题
- 我在正确的轨道上吗?
- 是否有任何批准的算法用于此任务?