是否有一种简单快捷的方法来检查多边形是否自相交?

2022-09-17  乐帮网

数学 几何

判断自相交有以下解决方案:

简单、缓慢、低内存占用:将每个段与所有其他段进行比较并检查交叉点。 复杂度 O(n2)。

稍快,中等内存占用(上面的修改版本):将边缘存储在空间“桶”中,然后在每个桶的基础上执行上述算法。 m 个桶的复杂度 O(n2 / m)(假设均匀分布)。

快速和高内存占用:使用空间散列函数将边分割成桶。 检查碰撞。 复杂度 O(n)。

快速且低内存占用:使用扫描线算法,例如此处(或此处)描述的算法。 复杂度 O(n log n)

最后一个是我最喜欢的,因为它具有良好的速度 - 内存平衡,尤其是 Bentley-Ottmann 算法。 实现也不是太复杂。

https://stackoverflow.com/questions/4876065/is-there-an-easy-and-fast-way-of-checking-if-a-polygon-is-self-intersecting

公众号二维码

关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com

庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。

欧阳修

付款二维码

如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力