首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >找到所有具有容差的线交点(最好是预先存在的实现)

找到所有具有容差的线交点(最好是预先存在的实现)
EN

Stack Overflow用户
提问于 2012-09-17 20:27:05
回答 1查看 329关注 0票数 4

本特利-奥特曼算法可用于在n log n时间内扫描一组线段中的所有交叉点。但是,有没有一个版本可以做到这一点的可变精度?也就是说,如果线的距离比一定的距离近,那么它们被认为是相交的地方?

EN

回答 1

Stack Overflow用户

发布于 2012-09-19 17:00:24

如果两个线段不相交,则它们之间的最小距离至少在一个线段端点上。因此,在您的情况下,测试一对线段是否相交或某个线段终点是否靠近其他线段就足够了。

在Bentley-Ottmann算法中,第一步测试是标准的,第二步是在扫描线上添加和删除线段。当段被添加到SL (左端点)时,它足以测试SL上靠近左端点的段以及在从SL到左的给定距离结束的段。类似于从SL中删除段时的情况。

我认为,由于对称性的原因,这足以测试一侧,例如向SL添加分段。

因为端点是排序的,所以这个搜索应该很快。如果可以保证片段在容差方面不是密集的,那么这种改变不会改变原始算法的n log n运行时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12459151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档