当前位置: 首页> 娱乐> 八卦 > 清华计算几何--凸Polygon的相交问题

清华计算几何--凸Polygon的相交问题

时间:2025/7/12 20:48:49来源:https://blog.csdn.net/qq_29523119/article/details/139537911 浏览次数:0次

凸Polygon和相交定义

本节只讨论凸Polygon的问题,不涉及凹Polygon.

相交包含了边相交和完全包含。

凸Polygon相交的两个问题

Detection(检测)

判断两个凸Polygon是否相交,至于相交部分是什么不关心.

Construction(构造)

求出两个凸Polygon具体相交部分(包含了检测是否相交)  

凸Polygon 相交检测(Detection)

dobkin and kirkpatrick's algorithm 算法

Monotone Partitioning(单调划分)

任意一个多边形都可以分解为两条多边形链

单调划分链下判断两个Polygon是否相交的条件描述 

Decrease-And-Conquer

总体上利用BinarySearch的思路对构成多边形的两条划分链求解.

1. 如果两条划分链最大边数 < 2, 则直接求两条划分链是否相交

2. 不满足1以后则求出两条划分链的中间边(median edge)-ep和eq

根据ep和eq的情况分情况(很多情况,下面举例经典情况)讨论结果:

[1]相交


[2]进一步递归求解

算法复杂度

本质上是BinarySeach,遵循O(logn). 涉及到两个多边形,假设边数量分别为N和M. 算法复杂度在O(log(N + M))

凸Polygon 相交Construction(构造)

EdgeChasing边追赶算法(O'Rourke's algorithm)

 算法案例流程

决定e, f边的具体迭代(追赶)策略

PlaneSweeping(平面扫描)

SweepLineStatus

观察可知任意一条直线与两个凸多变形最多四个交点,SLS不需要用到平衡二叉树来表示,是普通数组就行。

EventQueue

P和Q的最左边点是事件的开始, 由于多边形线段是相连的, 上一条线段退出意味着下一条线段开始。每次最多判断四条边相交。

算法复杂度: O(log(N + M)), 和EdgeChasing边追赶算法复杂度一样.

没有边界的凸多变形相交构造(unbounding convex plygon 相交construction)

后续有待补充

参考资料

[1]清华计算几何 P83 - P95

关键字:清华计算几何--凸Polygon的相交问题

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: