福利来了:几何——二维凸包

【信息科学与工程学】【数据科学】数据科学领域——第三篇 数学08 几何学07 网络几何01 编号类型领域问题问题的数学分析参数列表及参数的数值范围关联知识1组合优化 / 计算几何网络几何(几何图论):给定平面上的 n 个点(节点),求连接所有点的总边长最小的树。数学模型:设点集 P={p1​,…,pn​}⊂R2,边权为欧氏距离 d(pi​,pj​)=(xi​−xj​)2+(yi​−yj​)2​。目标是找到一棵生成树 T=(P,E)使得 ∑(i,j)∈E​d(pi​,pj​)最小。该问题是经典 MST 在欧氏度量下的特例,属于 NP-hard 吗? 阅读详情
继上次ACM几何问题,这次在这里讲一下凸包,作为给大一努力的礼物。
凸包即为一个最小凸多边形满足所有的点都在其内或其边上。
下面将讲述Andrew的算法,其比Graham算法更快更稳定。
对于输入的点p,先按照x从小到大排序(如果x相同,按照y从小到大排序)。
然后进行两次扫描,第一次从左到右,第二次从右到左,每次扫描时间复杂度为O(n),排序为O(nlogn)。
第一次扫描:先将前面的两个点加入,第一个点记X1,第二个点记X2,然后对于第三个点X3,此时产生两个向量v1=X2-X1,v2=X3-X1。
如果v1叉积v2为正,则加入X3这个点,否则删去X2这个点。然后重复上面的步骤,直到遍历完所有的点。
上面的描述也可以这样表述:第一个点记X1,第二个点记X2,然后对于第三个点X3,若X3在向量X1X2的左边,那么加入该点,否则删除X2。
第二次扫描同理,将第一次扫描的最后一个点作为第一个点,然后再加入一个点,重复上面的步骤。

代码如下:
//p[]为所有点的点集,n为所有点的个数,ch[]为存储凸包上的点的点集 
int Andrew(Point *p, int n, Point *ch)
{
sort(p, p + n);
int m = 0;
//第一次扫描
for (int i = 0; i < n; i++)
{
//Cross函数为两向量叉积函数
while (m > 1 && Cross(ch[m - 1] - ch[m - 2], p[i] - ch[m - 2]) <= 0) m--;
ch[m++] = p[i];
}
int k = m;
//第二次扫描
  for (int i = n - 2; i >= 0; i--)
{
while (m > k && Cross(ch[m - 1] - ch[m - 2], p[i] - ch[m - 2]) <= 0) m--;
ch[m++] = p[i];
}
//得到的点集中最后一个跟第一个一样,所以减一,返回凸包顶点数
return m - 1;
}

看完上面的内容,我们来想一想下面的题目。

一:坐标系里有一些长方形,只能用直线,使长方形都在你所创建的凸多边形内。

二:平面上有N个红点和M个蓝点,是否存在一条直线,使得直线的左边都是同一种颜色的点,右边都是另一种颜色的点,且点不能再所划的线上。

有兴趣的童鞋可以回复这两个题目在评论版。
YOLOv8【第十一章:视频追踪与流处理篇·第11节】区域入侵检测(ROI Intrusion):多边形区域判定算法优化! 🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。 阅读详情

相关推荐

【信息科学与工程学】【数据科学】数据科学领域 第六篇 算法设计 01

算法设计

weixin_49199313的博客 1503

凸包专题总结

1.安德鲁算法求 上+下凸包 2.Q.resize(k)和Q.reszie(k+1)的问题 3.几何题精度double和long long 避免混用,判断正负用sign 4.求凸包面积(无精度差),凸包周长 5.稳定凸包的理解:即不存在一个点,使得原先凸包上的点不再是新凸包上的点。即凸包上每条边,都有&gt;=3个点存在 6.极角排序/ 求凸包后也是极角排序 这些总结都是从已发过的文章...

Haipai1998的博客 468

【信息科学与工程学】计算机科学与自动化——第六十六篇 算子篇 第一章 通用算子01 多模态数据(图形/图像/文本/语音)中推断人类内在状态、策略、动机和利益的算法算子知识库

编号领域算法/方法算子名称算子的数学方程式/表达复杂度 (示例)关联知识11量子场论正则量子化产生/湮灭算符对易关系: [â_p, â†_q] = δ⁽³⁾(p​ - q)应用于态空间,计算复杂度取决于截断福克空间,粒子数表象,二次量子化12统计力学蒙特卡洛模拟马尔可夫链转移算子T(s → s‘) :满足细致平衡条件 π(s)T(s→s’)=π(s‘)T(s’→s)收敛到平衡分布需 ~O(τ), τ为相关时间细致平衡,Metropolis-Hastings准则,重要性采样13电磁学边界元法单层势/双层势算子

weixin_49199313的博客 310

计算几何系列 ——— 结构之美(三角形四心一点,多边形&凸包算法)

本系列文章力求以简洁易懂的文字介绍计算几何中的基本概念,使读者快速入门,故不追求难度和深度,仅起到抛砖引玉的作用。 这篇文章我们来好好聊一聊二维计算几何的圆类,三角形类和多边形类。 首先是我们的三角形类,由于我们不经常触及三角形的集合,所以我们一般直接用三角形 的三个顶点来表示一个三角形,也就是三个Point结构体构成的新结构体Triangle: 那么对于三角形这一几何变量的相关运算,一般包含三角形的面积计算,三角形的四心求取,还有一个是

Zz_0913的博客 3165

【信息科学与工程学】【通信工程】第十八篇 企业网、园区网、数据中心、广域网各类业务网络02

模型类别基本假设网络表示耦合函数渗透方程临界条件物理意义一对一依赖​每个交通节点与一个通信节点相互依赖双层网络:交通层G_T=(V_T,E_T),通信层G_C=(V_C,E_C),层间一一对应边E_I依赖函数:RT​=fT​(RC​,p),RC​=fC​(RT​,p)自洽方程: RT​=p[1−GT​0(1−RT​)][1−GC​0(1−RC​)] RC​=p[1−GC​0(1−RC​)][1−GT​0(1−RT​)]pc​=⟨kT2​⟩⟨kC2​⟩​1​ ⟨k²⟩=⟨k(k-1)⟩对称耦

weixin_49199313的博客 1143

凸包问题的算法

这个文档是描述凸包问题的算法,采用的是蛮力法

计算几何:凸包

极点:在一组点中,若沿着某一个点做直线,必然能找到一条直线使得所有点都在直线的另一侧,则这个点为极点。 凸包:给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形,它能包含点集中所有的点 平面的一个子集S被称为是“凸”的,当且仅当对于任意两点p,s∈S,线段ps都完全属于S。(平面凸包定义): 计算凸包: Graham扫描法: 复杂度O(nlog...

wangqianqianya的博客 916

UR10e+D435+ag95夹爪 gazebo 仿真记录(一)

学习仿真环境gazebo下利用UR10e机械臂搭建模拟平台,此博客用于记录搭建过程!!主要参考光头明明、总有一天全城的人都要高看我们和bug404_三位博主。最终自己功能包的主要参考了bug404_的ur_platform,感觉这个结构比较合理。运行环境:Ubuntu18.04+Ros-melodic+Gazebo9。

Forbiven的博客 6330

几何:凸包

凸包(Convex Hull)是一个计算几何(图形学)中的概 念。在一个实数向量空间V中,对于给定集合X,所有包 含X的凸集的交集S被称为X的凸包。X的凸包可以用X内所 有点(X1,…Xn)的凸组合来构造.在二维欧几里得空间中, 凸包可想象为一条刚好包著所有点的橡皮圈。用不严谨 的话来讲,给定二维平面上的点集,凸包就是将最外层 的点连接起来构成的凸多边形,它能包含点集中所有的 点。 做法: 第一步:找到最下边的点,如果有多个点纵坐标相同的点都在最下方,则选取最左边的,记为点A。这一步只需要扫描一遍所有的点

weixin_45630722的博客 517

从零到一:3D-ResNet50在医学影像中的实战陷阱与避坑指南

本文深入探讨了3D-ResNet50在医学影像分类中的实战应用,重点解析了NIFTI数据预处理、小样本迁移学习陷阱及GPU显存优化等关键问题。通过分块加载、混合精度训练等技巧,有效解决了医学影像处理中的内存管理和性能挑战,为开发者提供了实用的避坑指南和优化策略。

weixin_29038345的博客 392

Word中 Go to endnote 出现闪退问题解决办法

Word中 Go to endnote 出现闪退问题解决办法

努力努力努力 1万+

更新--学习笔记 凸包 && K短路

这周CYC的套题里出现了两个新的算法,一个是计算几何之凸包,还有一个是最短路扩展之K短路,在此做一个浅析凸包专题: 首先要知道一个什么样的东西叫做凸包: 凸包呢(用百科的话来说):用不严谨的话来讲,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边型,它能包含点集中所有的点。 类似这样的图形:(没错又是百度百科)那么构建凸包之后我们相

XLno_name的博客 579

(超详细)互补格雷码+相移码求解包裹相位(Python实现)

记录实现“互补格雷码+相移码”求解包裹相位的编码过程。也可以叫它“5+4”法,5代表五幅格雷码图像,4代表四步相移法的四张正弦条纹图。

暴雨梨花博客 3万+

计算几何入门与放弃

目录 叉积 多边形的面积 判断线段相交 二维凸包 逆时针排序 模拟过程 代码 半平面交 判断一个点是否在这条直线的半平面 直线有角度?? 两线交点出奇迹 ...

weixin_30319097的博客 202

4、文化遗产数字记录的伦理框架构建

本文探讨了在数字技术快速发展的背景下,如何构建一个伦理框架以指导文化遗产的数字记录工作。文章分析了遗产保护的重要性以及当前面临的挑战,包括气候变化、全球化和技术变革等。同时,结合国际古迹遗址理事会(ICOMOS)的伦理原则和加拿大遗产专业人员协会(CAHP)的行为准则,提出了六个核心伦理类别,并讨论了其在实践中的应用。文章强调,伦理框架不仅有助于提高数字记录的质量和可持续性,还能促进专家合作、保护社区利益并确保数字遗产的长期可访问性。未来需要持续完善这一框架,以应对不断变化的技术和社会环境带来的新挑战。

7h6j5k4l3的博客 97

微信小程序:使用mqtt手机屏幕锁屏后导致中断问题,让mqtt在手机黑屏后依然能保持连接及持续后台运行接收或处理任务,详解微信小程序MQTT在应用退到后台或手机熄屏的情况下自动检测并重连【强制保活】

微信小程序切后台后MQTT连接无法维持,微信小程序MQTT一旦用户锁屏、切换到后台或手机熄屏,连接就会断开,导致无法继续监听和处理业务消息,微信小程序mqtt保活方案,微信小程序屏幕锁屏或息屏导致mqtt连接中断怎么办,如何解决MQTT不能黑屏持续连接的问题,微信小程序应用退到后台 MQTT连接断开问题解决,苹果ios手机,安卓手机,uniapp微信小程序mqtt断开怎么解决,后台应用怎么保活,uni-app中MQTT连接频繁断开如何解决?应用退到后台后MQTT连接断开以及常连接断连的问题,微信小程序、MQ

✅ 精选推荐文章 3026

学习笔记:二维凸包-Andrew算法

感受到了,被几何搞得晕头转向的感觉 凸包应该算是计算几何中比较基础和常规的算法了。 顺着我的思路来,也许自己日后更好复习。 前置芝士 首先你需要一堆关于平面向量的芝士 斜率总要会吧 首先我们来看一个简单的问题: 一个平面上给你\(n\)个点,计算把\(n\)个点围起来的最小长度。 这是一个很经典的凸包问题。 那么什么是凸包呢? 大概就是题目中所讲述的那样,把给定点包围在内部的最小凸多边形。 怎么求...

weixin_30793643的博客 210

7、初级视觉皮层(V1)的研究综述

本文综述了初级视觉皮层(V1)的基本功能特性、计算理解、细胞相互作用及理论模型。V1不仅执行方向和空间频率的选择性滤波,还通过相位选择性和上下文调制参与高级视觉处理。研究从信息编码角度解释了V1感受野的形成,并介绍了基于自然图像统计的建模方法。横向与反馈连接揭示了V1在全局视觉整合中的作用,尤其是上下文对细胞响应的快速调节。李的动态模型提出V1可生成视觉显著性图,支持前注意分割和注意力引导。未来研究聚焦于V1在注意力、意识和硬件实现中的潜在应用,推动视觉神经科学与人工智能的交叉发展。

7z8x2c4v6b9的博客 146

从圆形装填到动态优化:数学建模中的空间布局与资源分配策略

空间布局优化是运筹学和工业工程中的经典问题,其核心是在有限区域内高效安排多个物体,以最大化空间利用率或满足特定约束。从几何原理上看,这通常涉及圆形或多边形在二维平面内的互不重叠排布,即圆形装填问题,其本质是处理边界约束和互斥约束的组合优化。在技术层面,此类问题常采用拟物算法、模拟退火、遗传算法等启发式或元启发式方法进行求解,以在可接受时间内获得满意解,其价值在于为车间布局、物流仓储、芯片设计等实际工程场景提供自动化决策支持。当物体属性(如尺寸)随时间动态变化时,问题便从静态布局升级为动态优化,需引入多阶段规

weixin_34357928的博客 373

Flink Gauss CDC:深度剖析存量与增量同步的创新设计

开发Flink Gauss CDC是为了适配华为自研GaussDB的特殊日志格式和逻辑复制机制,解决Flink CDC无法直接支持的问题,同时优化存量与增量同步的效率和一体化读取能力,满足GaussDB复合主键处理、数据落库等定制化需求,以实现高效、准确的数据同步。

数据与算法架构提升之路专栏 1985

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

OpenCV4 系统化学习路线图与教程

预警阅读本文,大概需要3~5分钟,文末有福利...起因-OpenCV4.0发布OpenCV4.0发布以来,其依靠良好的接口代码、系统级别的优化、更加通用易学的函数调用,集...

python爬虫人工智能大数据 2146

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

OpenCV4系统化学习路线图与教程

预警阅读本文,大概需要3~5分钟,文末有福利...起因-OpenCV4.0发布OpenCV4.0发布以来,其依靠良好的接口代码、系统级别的优化、更加通用易学的函数调用,集...

Java与Android技术栈 869

IMSL CNL 7.0.0 (x86-64)Crack

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

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

SH9拓扑意识场论(TCFT):意识的拓扑本源、数学架构与宇宙统一图景(世毫九实验室原创理论)

证明:由自指性\mathcal{T} \cong H_k(\mathcal{T}),欧拉示性数满足\chi(\mathcal{T}) = \chi(H_k(\mathcal{T})) = (-1)^k \text{rank}(H_k(\mathcal{T})) = (-1)^k \chi(\mathcal{T})。注意到\mathcal{B}_1中持久度无穷大的特征对应d=\infty,此时\mathcal{B}_1退化为\{b \in \mathbb{R} \mid b \geq 0\}。

shardylab.blog.youkuaiyun.com 765

上凸包和下凸包_使用凸包聚类

上凸包和下凸包I recently came across the article titled High-dimensional data clustering by using local affine/convex hulls by HakanCevikalp in Pattern Recognition Letters. It proposes a novel algorithm to c...

weixin_26713521的博客 1508
上一篇: ACM几何问题
下一篇: 网络流Edmond-Karp算法
ColorWaterer
博客等级 码龄12年 16粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值