旋转卡壳——临界切线

探索凸多边形的几何特性与算法应用 本文探讨了凸多边形在计算几何中的重要应用,特别是最小面积外接矩形问题的解决方法。通过旋转卡壳技术,提出了一种高效算法,该算法仅需线性时间复杂度即可计算出凸多边形的最小面积外接矩形。此外,文章还介绍了凸多边形的最小周长外接矩形问题,以及三角剖分中“剥洋葱皮”操作的概念。通过这些算法,我们能够更高效地处理几何数据,为计算机图形学和相关领域提供了实用的解决方案。 阅读详情

临界切线

两个凸多边形间的临界切线(一般被叫做CS线)是使得两个多边形分居线不同侧的切线。 换句话说, 他们分隔了多边形。
CS线可以应用于motion planning, visibility 和 range fitting。

下图是关于两个多边形和他们的两条临界切线。
 

 

这里要注意的一点是假设数据是以标准形式给出的, CS线只会在两个顶点处与两个多边形相交。 因此, 一条CS线由多边形间顶点对确定。
如下的结论描述了这个点对:

给定两个凸多边形 P, Q, 两个顶点 p(i), q(j) (分别属于 P 和 Q) 确定一条CS线当且仅当:

  1. p(i), q(j) 构成多边形间对踵点对。
  2. p(i-1),p(i+1) 位于线 (p(i), q(j)) 一侧,同时q(j-1),q(j+1) 位于另一次。
利用这个结论, CS线可以很容易地确定。 只有多边形间的对踵点对才需要进行测试。 因此, Toussaint建议使用旋转卡壳。 假设多边形是以标准形式给出并且是顺时针序排列顶点, 考虑如下过程:
  1. 计算 P 上 y 坐标值最小的顶点(称为 yminP ) 和 Q 上 y 坐标值最大的顶点(称为 ymaxQ)。
  2. 为多边形在 yminP 和 ymaxQ 处构造两条切线 LP 和 LQ 使得他们对应的多边形位于他们的右侧。 此时 LP 和 LQ 拥有不同的方向, 并且 yminP 和 ymaxQ 成为了多边形间的一个对踵点对。
  3. 令 p(i)= yminP, q(j)= ymaxQ。 (p(i), q(j)) 构成了多边形间的一个对踵点对。 检测是否有 p(i-1),p(i+1) 在线 (p(i), q(j)) 的一侧, 并且 q(j-1),q(j+1) 在另一侧。 如果成立, (p(i), q(j)) 确定了一条CS线。
  4. 旋转这两条线, 直到其中一条和其对应的多边形的边重合。
  5. 一个新的对踵点对确定了。 如果两条线都与边重合, 总共三对对踵点对(原先的顶点和新的顶点的组合)需要考虑。 对于所有的对踵点对, 执行上面的测试。
  6. 重复执行步骤4和步骤5, 直到新的点对为(yminP,ymaxQ)。
  7. 输出CS线。

这个算法基本通过绕着多边形旋转切线, 顺序查找所有多边形间的对踵点对。 每次一对对踵点确定后, 执行所有必要的测试。 在上述过程执行完后, 所有的临界切线都被找到了。
算法的运行时间由步骤1和步骤6决定, 他们都花费 O(n) 的时间(所有的检测都花费常数时间。 因为有 O(n) 的对踵点对, 总的花费为 O(n))。

关于凸多边形的学习, 最后的操作是 凸多边形矢量和。

 

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

 

转载请注明出处,谢谢!

论文研究-改进临界多边形生成算法.pdf 在Burke等人提出的用于求解临界多边形的移动碰撞算法基础之上,提出了一种更加高效的求取NFP的改进算法。该算法大大降低了问题的几何复杂性,简化了计算最小移动距离的方法,使许多启发式策略可以更加容易地与该算法结合来求解二维排样问题。实例验证了改进算法是有效且可行的,已应用于皮革自动排样软件中。 立即下载

相关推荐

一种简单、快速、高效的多边形减面算法

一种简单、快速、高效的多边形减面算法 - GameRes_com.mht 看看

【转】云社区 博客 博客详情 二维异形件排版算法介绍(一)

转自:https://bbs.huaweicloud.com/blogs/175385 【摘要】 排样问题(Nesting Problem)又称为下料问题(Cutting and stock problems)或填充问题(Packing Problem),其目标是在材料切割过程中寻找一个较高的材料利用率。排样问题属于经典的NP-Hard问题,其时间复杂度随着问题规模的增加迅速上升,难以在合理时间内精确求解大规模实例。 算法简介 排样问题(Nesting Problem)又称为下料问题(C.

sinolover的专栏 6200

计算几何 旋转卡壳

计算几何中旋转卡壳的好资料,讲解清晰易懂,讨论了旋转卡壳中的很多经典问题

【转】二维异形件排版算法介绍(二)

转自:https://bbs.huaweicloud.com/blogs/196289 【摘要】 二维不规则异形件主要有两种策略:分别是基于可行解的排样策略和基于重叠移除的排样策略。所谓基于可行解的排样策略,是指在排样过程中零件之间始终是不重叠的,而基于重叠移除的排样策略,是指在排样过程中允许零件之间发生重叠,在搜索过程中采用一定策略减少零件重叠的程度,直至最终得到可行解为止。 1二维异形件排样算法 上一篇博客提到二维异形件排样算法涉及到高速几何算法、排样策略和优化算法,并...

sinolover的专栏 5375

旋转卡壳算法讲解

1978年, M.I. Shamos's Ph.D. 的论文"Computational Geometry"标志着计算机科学的这一领域的诞生。 当时他发表成果的是一个寻找凸多边形直径的一个非常简单的算法, 即根据多边形的一对点距离的最大值来确定。 后来直径演化为由一对对踵点对来确定。 Shamos提出了一个简单的 O(n) 时间的算法来确定一个凸 n 角形的对踵点对。 因为他们最多只有 3n/2 对, 直径可以在 O(n) 时间内算出。 如同Toussaint后来提出的, Shamos的算法就像绕着多边形旋转一对卡壳。 因此就有了术语“旋转卡壳”。 1983年, Toussaint发表了一篇论文, 其中用同样的技术来解决许多问题。 从此, 基于此模型的新算法就确立了, 解决了许多问题。

WorkBuddy入门到 多Agent团队协作完全指南(附实操代码与配图)

WorkBuddy的Agent Teams功能支持多智能体协作,通过创建AI团队提升复杂任务处理效率。该功能支持自然语言创建团队、任务分配与依赖管理、成员间消息通信(包括直接消息和广播),并提供任务审批机制。典型应用场景包括软件开发、内容创作等协作任务。环境要求WorkBuddy 2026年3月及以上版本,支持Windows和macOS系统。用户可快速创建包含不同角色的AI团队,通过共享任务列表和信箱系统实现协作。高级功能包括委派模式、任务依赖管理和成员自主认领等,适合各类协作场景。

三棱球的专栏 6447

先看段硬核的暴力测试

这背后是一套经过极致优化的临界多边形(NFP)算法,今天咱们就来扒它的C语言实现。代码仓库已开源,拿走直接用的时候记得处理下边缘case——毕竟现实中的多边形可比教科书上的调皮多了。没有STL容器的性能波动,内存布局经过精细优化,实测比某些C++实现快3倍以上。这里有个优化点:将B的边逆向计算,避免后续的重复判断。临界多边形算法源代码,NFP算法源码,可通用凹凸多边形,纯c语言实现,巅峰效率,无其他算法库依赖。这个设计支持凹凸多边形混合运算。判断内外环的flag是处理孔洞的关键,后面会看到它的妙用。

2503_94165661的博客 504

告别抖动与滞后:深入博能传动伺服DSC功能,用105报文提升多轴同步性能

本文深入解析博能传动伺服DSC功能如何通过105报文实现多轴同步性能提升,有效解决工业自动化中的抖动与滞后问题。详细介绍了DSC技术原理、105报文实现机制及多轴同步工程实践,帮助工程师优化伺服系统性能,实现绝对齿轮同步。

weixin_30394981的博客 184

点到多边形的切线

前言 暴力算法 二分搜索

大鹏的blog 2625

论文浅读之PIP-Net: Patch-Based Intuitive Prototypes for Interpretable Image Classification

这篇文章的主要贡献包括:1 提出了一种新型的可解释图像分类模型PIP-Net,它基于原型部分学习可解释的原型,实现内置解释性。2 PIP-Net采用自监督学习的新正则化方法,学习原型之间的相似性,使得 latent 空间中的相似性能更好地与人类视觉感知相一致,从而减小了所谓的语义差距。3 PIP-Net可解释为一个稀疏的打分表,它可以检测图像是否属于任何类,或是否属于多个类。它也可以对OOD数据进行分类并说“我没有看到过这个”。

qq_49370210的博客 1791

深入解析Buck开关电源中的死区时间设计及其对系统性能的影响

本文深入解析了Buck开关电源中死区时间的设计原理及其对系统性能的关键影响。死区时间通过防止上下管同时导通来避免穿通电流,确保系统安全。文章详细探讨了其工作机制、设置时的效率与安全权衡,以及不当设置对效率、稳定性和EMI的连锁反应,并提供了基于实测的调试方法与实战案例。

Apple的专栏 1129

两个多边形之间的切线算法,最通俗易懂的讲解

前言

大鹏的blog 2073

国家基本比例尺分幅土地利用现状图制作

本次主要解决的问题是如何构建脚本快速生成所涉及区域标准国家基本比例尺分幅,然后制作土地利用现状图模板,套用模板生成标准分幅土地利用现状图。

xyt1172228177的博客 2458

旋转卡壳法总结

旋转卡壳法总结 分类: 计算几何2013-08-27 10:51 53人阅读 评论(0) 收藏 举报 目录(?)[+] 以下所有文章均转载( http://blog.youkuaiyun.com/acmaker/article/details/3176910) 转载请注明出处! 1、旋转卡壳——翻译说明文档   前一段时间看了一位国外大

pi9nc的专栏 9537

OpenClaw + Antigravity + 飞书完整部署教程

在 Linux 服务器上部署 OpenClaw,使用 Antigravity 本地代理 AI 模型,并接入飞书实现 24 小时在线 AI 助手。

Maynor的博客 1788

低代码部署与管理——OpenClaw智能助手的应用部署与运维(2026技术版)

OpenClaw智能助手的低代码部署与管理平台采用分层架构设计,包含部署工具、环境管理、版本控制等核心模块,支持从开发到生产的全流程自动化部署。该系统通过Docker、Kubernetes等技术实现应用构建和部署,利用Terraform等工具管理多环境配置,并提供完善的监控运维能力。平台针对开发、测试、预生产和生产环境提供差异化配置,确保部署效率和运行可靠性。这种架构设计遵循自动化、可扩展性和安全性原则,显著提升了智能助手应用的部署效率和运维质量。

一键难忘的博客 317

旋转卡壳算法及应用 (参考论文)

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

dianzhixie7235的博客 445

猿创征文|SfM(Structure from Motion)学习之路

SfM全称Structure from Motion,译为运动恢复结构,是三维重建pipeline的一部分,又称稀疏重建,在摄影测量领域则称为空三(空中三角测量)。SfM的任务是,给定一系列具有一定重叠度的图像,去同时估计出拍摄每张图像时相机的的位姿(位置t和姿态R)和被拍摄物体或场景的稀疏点云。...............

zeeq的博客 1万+

旋转卡壳算法(转载)

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

weixin_30732825的博客 116

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

旋转卡壳——最薄横截带

最薄横截带考虑下述设备放置问题:一个“消费群体群”的集合是以个体呈现为平面上凸多边形的一个家庭 F 给出的。 我们的目标是找到一个“设备”, 一条平面上的直线, 使得线到消费者的最大距离最小。 最后一点需要澄清。 直线与任何一个多边形的距离都是指多边形上一点到线的正交距离的最小值。 因此,每个多边形到线的距离是唯一的。 现在, 给定家庭中各个呈多边形的成员和平面上的一条直线, 每个多边形都有一个到

ACMaker的专栏 2474

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"标志着计算机科学的这一领域的诞生。 当时他发表成果的是一个寻找凸多边形直径的一个非常简单的算法, 即根据多边形的一对点距离的最大值来

wangheng 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

旋转卡壳——目录页

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

ACMaker的专栏 8229

旋转卡壳算法

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

AngelBeats! 1158

旋转卡壳总结

[+] 目录(?)[+] 以下所有文章均转载(http://blog.youkuaiyun.com/acmaker/article/details/3176910) 转载请注明出处! 1、旋转卡壳——翻译说明文档 前一段时间看了一位国外大牛的网站,是关于旋转卡壳技术的,内容很不错,就尝试着翻译一下。 关于旋转卡壳技术,最早是...

weixin_30371469的博客 133
上一篇: 旋转卡壳——凸多边形交
下一篇: 旋转卡壳——凸多边形矢量和
ACMaker
博客等级 码龄20年 72粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值