-
问题内容:求教:多边形自相交的判断
- 原讨论链接:http://community.csdn.net/expert/topicview1.asp?id=3868048
- 所属论坛:数据结构与算法
审核组:其他
- 提问者:gisir
解决者:happy__888
- 感谢:happy__888、gisir
- 关键字:专题开发/技术/项目 数据结构与算法
- 答案:
请问,现在已知一个多边形坐标串,首位坐标相同,如何判断该多边形是一个简单环,还是自相交。
---------------------------------------------------------------
基本做法就是判断组成多边形的各个线段之间非相邻的是否相交
---------------------------------------------------------------
这样做太慢
-----------------------------------
加速的办法是为这个多边形创建附加的数据的
如果你是在创建当中,那么可以用递归的办法解决,先保证以前的各个多边形线段都不自交,然后检测新加入的。如果你是修改一个顶点,那么只检测和这个顶点相关的两条边和其他线段的相交即可。这样的检测量是O(N)数量级的
如果没有上述条件,恐怕就是要对组成多边形的各个顶点进行排序,然后再进行检测,这样的计算量总体上来说依然是o(n^2)到O(nLogN)这个数量级的
---------------------------------
我知道微分几何学中有多边形的自旋系数的概念,可以循着这条思路来解决,但是当多边形多次自相交时计算出来的自旋系数有可能与不自相交时一样,我还没有解决这个问题,期待高手回音。
- 评价:
给朵鲜花(24)
扔个鸡蛋(14)