多边形之间相交求交点的算法_算法|凸包问题--旋转卡壳

旋转卡壳算法是解决凸包问题的有效方法,源于M.I. Shamos在1978年的论文。该算法利用凸包的性质,在线性时间内找到凸多边形的直径。通过计算支撑线、对踵点,逐步旋转直线找到最大距离的点对。算法步骤包括计算多边形、旋转直线、比较面积等,最终输出直径对应的对踵点对。在POJ-2187题目中,该算法用于Beauty Contest问题并得到验证。
摘要由CSDN通过智能技术生成

作者:henu_wxj

链接:https://blog.nowcoder.net/n/90cf725051a84bddb75a8e049c892397

来源:牛客网

前情提要:

1978年,M.I.Shamos在论文《Computational Ceometry》中介绍了一种寻找凸多边形直径的线性算法。

Shamos的算法就像绕着多边形旋转一对卡壳,因此便有了术语——旋转卡壳。旋转卡壳是一种高效的算法。被广泛运用在解决一些与凸包相关的问题。旋转卡壳充分利用了凸包的凸性,通常可以在线性时间内内解决问题。

有关概念:

1.支撑线:如果一条直线L,通过凸多边形P的一个顶点,且多边形在这条直线的一侧,称L是P的支撑线。

2.对踵(zhong,三声)点:如果过凸包上的两个点可以画一对平行直线,使凸包上所有点都夹在两条平行线之间||落在平行线上,那么这两个点称为一对对踵点。两条平行的支撑线所过的两点就是一对对踵点。可以证明,一个凸

边形的对踵点最多只有
(对上取整)对。

3.凸多边形的直径:将一个凸多边形上任意两点间的距离的最大值定义为多边形的直径。确定这个直径的点对数可能多于一对。事实上,对于拥有

个顶点的多边形,就可能有n对“直径点对”存在。

存在一个凸多边形直径定理&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值