旋转卡壳——凸多边形的宽度

计算几何系列 —— 美妙的旋转卡壳算法~上 上述就是我们利用旋转卡壳算法求出二维凸包的直径~,那么关于旋转卡壳算法如此巧妙,怎会只有这一种用途~ ,旋转卡壳算法其实还可以用于解决大量的多边形的问题,而非仅仅局限于原来了解的基于凸包的一些具体问题,十分具有研究价值 阅读详情
    凸多边形的宽度定义为平行切线间的最小距离。 这个定义从宽度这个词中已经略有体现。 虽然凸多边形的切线有不同的方向, 并且每个方向上的宽度(通常)是不同的。 但幸运的是, 不是每个方向上都必须被检测。 

    我们假设存在一个线段 [ a,b], 以及两条通过 a 和 b 的平行线。 通过绕着这两个点旋转这两条线, 使他们之间的距离递增或递减。 特别的, 总存在一个 特定旋转方向 使得两条线之间的距离通过旋转变小。 

    这个简单的结论可以被应用于宽度的问题中: 不是所有的方向都需要考虑。 假设给定一个多边形, 同时还有两条平行切线。 如果他们都未与边重合, 那么我们总能通过旋转来减小他们之间的距离。 因此, 两条平行切线只有在其中至少一条与边重合的情况下才可能确定多边形的宽度。 

    这就意味着 “对踵点 点-边”以及 “边-边”对需要在计算宽度过程中被考虑。 

 

一个凸多边形宽度的示意图。 直径对如图由平行切线(红线)穿过的黑点所示。 直径如高亮的淡蓝色线所示。


    一个与计算 直径问题非常相似的算法可以通过遍历多边形对踵点对列表得到, 确定顶点-边以及边-边对来计算宽度。 选择过程如下:
  1. 计算多边形 y 方向上的端点。 我们称之为 ymin 和 ymax。
  2. 通过 ymin 和 ymax 构造两条水平切线。如果一条(或者两条)线与边重合, 那么一个“对踵点 点-边”对或者“边-边”对已经确立了。 此时, 计算两线间的距离, 并且存为当前最小距离。
  3. 同时旋转两条线直到其中一条与多边形的一条边重合。
  4. 一个新的“对踵点 点-边”对(或者当两条线都与边重合,“边-边”对)此时产生。 计算新的距离, 并和当前最小值比较, 小于当前最小值则更新。
  5. 重复步骤3和步骤4(卡壳)的过程直到再次达到最初平行边的位置。
  6. 将获得的最小值的对作为确定宽度的对输出。

    更为直观的算法再次因为需要引进角度的计算而体现出其不足。 然而, 就如在凸多边形间最大距离问题中一样, 有时候更为简单、直观的旋转卡壳算法必须被引入计算。

 

原文地址:http://cgm.cs.mcgill.ca/~orm/width.html

 

转载请注明出处,谢谢!

一文带你弄懂thermal governor IPA 当current temp < target temp时,使用k_pu,当current temp >= target temp时,使用k_po。如果current_temperature = switch_on_temp时,则k_p = k_pu,这时Pmax。如果current_temperature = target_temp时,则k_p = k_po,这时Pmax。2、解析dts,获得switch_on_temp和target_temp。3、初始化k_pu/k_po/k_i/k_d的常数。 阅读详情

相关推荐

基于RK3588与Gstreamer的端侧实时视频流AI推理系统构建

本文详细介绍了基于RK3588芯片与Gstreamer框架构建端侧实时视频流AI推理系统的完整方案。通过硬件选型、环境配置、OpenCV编译优化、视频流处理实战及模型部署等关键环节的深入解析,展示了如何利用RK3588的6TOPS NPU算力与Gstreamer的低延迟特性,实现工业质检、智能交通等场景下的高效边缘计算。特别针对RTSP推拉流优化、RKNN模型转换等核心技术难点提供了实用解决方案。

weixin_30516243的博客 381

旋转卡壳法总结

以下所有文章均转载( http://blog.youkuaiyun.com/acmaker/article/details/3176910) 转载请注明出处!  1、旋转卡壳——翻译说明文档   前一段时间看了一位国外大牛的网站,是关于旋转卡壳技术的,内容很不错,就尝试着翻译一下。      关于旋转卡壳技术,最早是在刘汝佳、黄亮的《算法艺术与信息学竞赛》上看到的,是计算几何相关的技术,开始觉得很神奇,

天亮说晚安 2325

suse ha for sap scale-up性能优化场景安装配置

suse ha for SAP安装配置

jetliu05的博客 2135

凸多边形的宽度

求凸多边形的宽度; 凸多边形的宽度就是凸多边形的最短对踵点; #include&lt;bits/stdc++.h&gt; using namespace std; const int N=115; int n; double ans=1e100; struct P { int x,y; P() {} P(int _x,int _y) { x=...

wuxiaowu547的博客 1753

Ubuntu20.04系统Cuckoo sandbox所需环境搭建及安装(超详细图文)

请勿叫我大神,我只是互联网的搬运工~ 前言 本教程以Ubuntu20桌面版作为示范,服务器版同样适用,但可能稍微麻烦一点,服务器版本的话安装Xmanage套装使用可能会相对轻松一些,由于后面会使用到vbox的使用,对vbox命令行操作不熟悉的小伙伴用xmanage可能会相对轻松一点。 提示:以下是本篇文章正文内容,下面案例可供参考 安装ubuntu20桌面版 步骤1:转到https://ubuntu.com/download/desktop下载下载.iso。 步骤2:使用您选择的虚拟机监控程序(VMWa

ElsonHY的博客 1万+

FTPClient使用中,碰到SocketTimeoutException 坑

ftpclient设置soTimeout无效

u010379794的博客 1951

旋转卡壳---凸多边形间最小距离

给定两个不相连(也就是不相交)的凸多边形 P 和 Q, 目标是找到它们之间的最小距离的点对 (p,q) (p 属于 P 且 q 属于Q)。       事实上, 多边形不相交十分重要, 因为我们所说的多边形包含其内部的所有点。 如果多边形相交, 那么最小距离就变得没有意义了。

zhang20072844的专栏 3686

Log4Shell漏洞复现:从原理到实战的完整指南

日志记录是软件开发中用于追踪应用状态和排查问题的关键技术。然而,当日志组件对用户输入进行不当解析时,可能引发严重的安全风险。Log4j2作为Java生态中广泛使用的日志框架,其Lookup功能允许在日志中动态插入变量,这一设计初衷虽为便利,却因递归解析机制埋下了隐患。攻击者通过构造特定的JNDI(Java命名和目录接口)查询字符串,可诱使应用加载并执行远程恶意代码,从而实现远程命令执行。这种漏洞的价值在于其极低的利用门槛和极高的潜在危害,常被用于渗透测试和安全评估中,以验证系统的防御能力。本文以CVE-20

weixin_30496999的博客 275

旋转卡壳---凸包的宽度

凸多边形的宽度被定义为平行切线间的最小距离。 这个定义在宽度这个词中已经给出了暗示。 然而,凸多边形的切线允许有任意的方向, 并且对于每个方向上的宽度(通常)是不同的。 但幸运的是, 不是每个方向上都必须被检测。            我们设一个线段 [a,b], 以及两条通

zhang20072844的专栏 1905

RK3568-适配phy芯片ip101gri

复位时间查阅数据手册。

Paper_Love的博客 2643

知识图谱(Knowledge Graph)原理与代码实战案例讲解

知识图谱(Knowledge Graph)原理与代码实战案例讲解 作者:禅与计算机程序设计艺术 / Zen and the Art of Computer Programming 1. 背景介绍 1.1 问题的由来

AI天才研究院 1077

计算几何之旋转卡壳算法

转载于 http://blog.youkuaiyun.com/acmaker/article/details/3188177 一、目录 一些历史: 1978年, M.I. Shamos's Ph.D. 的论文"Computational Geometry"标志着计算机科学的这一领域的诞生。 当时他发表成果的是一个寻找凸多边形直径的一个非常简单的算法, 即根据多边形的一对点距离的最大值来

wangheng 1万+

FPGA原型验证(八):SoC设计适配与实现策略

时钟门控在SoC设计中很常见,应该小心处理门控时钟,以成功地在FPGA上原型化SoC设计。现代FPGA综合工具在正确约束的情况下,可以自动处理大多数门控时钟。通过遵循本章中的指导方针,即使具有复杂时钟门控的SoC设计也可以得到处理,并成功地在FPGA上进行原型化。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 477

旋转卡壳解决一类问题(资料)

以下所有文章均转载( http://blog.youkuaiyun.com/acmaker/article/details/3176910) 转载请注明出处! 1、旋转卡壳——翻译说明文档   前一段时间看了一位国外大牛的网站,是关于旋转卡壳技术的,内容很不错,就尝试着翻译一下。      关于旋转卡壳技术,最早是在刘汝佳、黄亮的《算法艺术与信息学竞赛》上看到的,是计算几何相关的技术,开始觉得很

duanxian0621的专栏 2577

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

旋转卡壳算法总结

一、历史背景 1978年, M.I. Shamos's Ph.D. 的论文"Computational Geometry"标志着计算机科学的这一领域的诞生。 当时他发表成果的是一个寻找凸多边形直径的一个非常简单的算法, 即根据多边形的一对点距离的最大值来确定。 后来直径演化为由一对对踵点对来确定。 Shamos提出了一个简单的O(n)时间的算法来确定一个凸n角形的对踵点对。 因为他们最多只有 3n/2 对, 直径可以在O(n)时间内算出。 如...

Cloth的博客 3278

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

旋转卡壳算法

转自:http://blog.youkuaiyun.com/acmaker/article/details/3188177 一、目录 一些历史: 1978年, M.I. Shamos's Ph.D. 的论文"Computational Geometry"标志着计算机科学的这一领域的诞生。 当时他发表成果的是一个寻找凸多边形直径的一个非常简单的算法, 即根据多边形的一对点距离的最大值来确定。

风云龙儿的专栏 2万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

旋转卡壳

http://cgm.cs.mcgill.ca/~orm/rotcal.frame.html 旋转卡壳 一些历史: 1978年, M.I. Shamos's Ph.D. 的论文"Computational Geometry"标志着计算机科学的这一领域的诞生。 当时他发表成果的是一个寻找凸多边形直径的一个非常简单的算法, 即根据多边形的一对点距离的最大值来确定。 后来直径演化为由一对对踵点

lyc 1353

旋转卡壳详解(转)

旋转卡壳详解 转载来源:https://blog.youkuaiyun.com/qq_34921856/article/details/80690822 (应博主要求 我是博主粉丝) 另一篇博客 问题描述 基本问题为O(n)求凸n角形的对踵点,而由该问题可以引申出许多的难题,他们包括: 计算距离 凸多边形直径 凸多边形宽 凸多边形间最大距离 凸多边形间最小距离 外接矩形 最小面积外接矩形 最小周长外接...

weixin_30402085的博客 138

计算几何——旋转卡壳

以下所有文章均转载( http://blog.youkuaiyun.com/acmaker/article/details/3176910) 转载请注明出处! 旋转卡壳——翻译说明文档    原文地址:http://cgm.cs.mcgill.ca/~orm/diam.html  前一段时间看了一位国外大牛的网站,是关于旋转卡壳技术的,内容很不错,就尝试着翻译一下。    

YitongJun的博客 1372

旋转卡壳算法(转载)

https://www.cnblogs.com/little-w/p/3579603.html 转自:http://blog.youkuaiyun.com/acmaker/article/details/3188177 一、目录 一些历史: 1978年, M.I. Shamos's Ph.D. 的论文"Computational Geometry"标志着计算机科学的这一领域的诞生。 当...

ako2654的博客 689

旋转卡壳解决一类问题(程序)——未完待续

1、旋转卡壳求凸多边形直径(即求平面点集最远点对) http://poj.org/problem?id=2187   本题数据较水,可以直接暴力 #include #include #include #include #include #include #include #include #include #include #include #include using namespace

duanxian0621的专栏 731

旋转卡壳解决一类问题(资料) 《转载》

以下所有文章均转载( http://blog.youkuaiyun.com/acmaker/article/details/3176910) 转载请注明出处! 1、旋转卡壳——翻译说明文档   前一段时间看了一位国外大牛的网站,是关于旋转卡壳技术的,内容很不错,就尝试着翻译一下。      关于旋转卡壳技术,最早是在刘汝佳、黄亮的《算法艺术与信息学竞赛》上看到的,是计算几何相关的技术,开始觉得很神奇

binwin20 1087
上一篇: 旋转卡壳——凸多边形直径
下一篇: 旋转卡壳——凸多边形间最小距离
ACMaker
博客等级 码龄20年 72粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值