族谱网 头条 人物百科

凸包

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:507
转发:0
评论:0
算法增量式算法逐次将点加入,然后检查之前的点是否在新的凸包上。由于每次都要检查所有之前的点,时间复杂度为O(n2){displaystyleO(n^{2})}。包裹法(Jarvis步进法)首先由一点必定在凸包的点开始,例如最左的一点A1{displaystyleA_{1}}。然后选择A2{di

算法

增量式算法

逐次将点加入,然后检查之前的点是否在新的凸包上。由于每次都要检查所有之前的点,时间复杂度为O(n2){\displaystyle O(n^{2})}。

包裹法(Jarvis步进法)

首先由一点必定在凸包的点开始,例如最左的一点A1{\displaystyle A_{1}}。然后选择A2{\displaystyle A_{2}}点使得所有点都在A1A2{\displaystyle A_{1}A_{2}}的右方,这步骤的时间复杂度是O(n){\displaystyle O(n)},要比较所有点以A1{\displaystyle A_{1}}为原点的极坐标角度。以A2{\displaystyle A_{2}}为原点,重复这个步骤,依次找到A3,A4,...,Ak,A1{\displaystyle A_{3},A_{4},...,A_{k},A_{1}}。这总共有k{\displaystyle k}步。因此,时间复杂度为O(kn){\displaystyle O(kn)}。

葛立恒(Graham)扫描法

凸包

由最底的一点A_1开始(如果有多个这样的点,那么选择最左边的),计算它跟其他各点的连线和x轴正向的角度,按小至大将这些点排序,称它们的对应点为A2,A3,...,An{\displaystyle A_{2},A_{3},...,A_{n}}。这里的时间复杂度可达O(nlog⁡ ⁡ -->n){\displaystyle O(n\log {n})}。

考虑最小的角度对应的点A3{\displaystyle A_{3}}。若由A2{\displaystyle A_{2}}到A3{\displaystyle A_{3}}的路径相对A1{\displaystyle A_{1}}到A2{\displaystyle A_{2}}的路径是向右转的(可以想象一个人沿A1{\displaystyle A_{1}}走到A2{\displaystyle A_{2}},他站在A2{\displaystyle A_{2}}时,是向哪边改变方向),表示A3{\displaystyle A_{3}}不可能是凸包上的一点,考虑下一点由A2{\displaystyle A_{2}}到A4{\displaystyle A_{4}}的路径;否则就考虑A3{\displaystyle A_{3}}到A4{\displaystyle A_{4}}的路径是否向右转……直到回到A1{\displaystyle A_{1}}。

这个算法的整体时间复杂度是O(nlog⁡ ⁡ -->n){\displaystyle O(n\log {n})},注意每点只会被考虑一次,而不像Jarvis步进法中会考虑多次。

这个算法由葛立恒在1972年发明。它的缺点是不能推广到二维以上的情况。

单调链

将点按x坐标的值排列,再按y坐标的值排列。

选择x坐标为最小值的点,在这些点中找出y坐标的值最大和y坐标的值最小的点。对于x坐标为最大值也是这样处理。将两组点中y坐标值较小的点连起。在这条线段下的点,找出它们之中y坐标值最大的点,又在它们之间找x坐标值再最小和最大的点……如此类推。

时间复杂度是O(nlog⁡ ⁡ -->n){\displaystyle O(n\log {n})}。

分治法

将点集X分成两个不相交子集。求得两者的凸包后,计算这两个凸包的凸包,该凸包就是X的凸包。时间复杂度是O(nlog⁡ ⁡ -->n){\displaystyle O(n\log {n})}。

快包法(Akl-Toussaint启发式)

选择最左、最右、最上、最下的点,它们必组成一个凸四边形(或三角形)。这个四边形内的点必定不在凸包上。然后将其余的点按最接近的边分成四部分,再进行快包法(QuickHull)。

各种星形多面体的凸包

应用

图象处理

模式识别

地理信息系统

参考

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, Second Edition. MIT Press and McGraw-Hill, 2001. ISBN 0262032937. Pages 955–956 of section 33.3: Finding the convex hull.

The Convex Hull of a 2D Point Set or Polygon, by Dan Sunday

参见

Carathéodory定理

Delaunay三角化


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 凸集
凸集实例区间是实数的凸集。依据定义,中空的圆形称为圆(circle),它不是凸集;实心的圆形称为圆盘(disk),它是凸集。凸多边形是欧几理得平面上的凸集,它们的每只角都小于180度。单纯形是凸集,对于单纯形的顶点集合来说,单纯形是它们的最小凸集,所以单纯形也是一个凸包。定宽曲线是凸集。凸集的延森不等式定义在度量几何中,琴生不等式(Jensen"sinequality)为凸集给出一个最健全的解释,而不必牵涉到二阶导数:简单而言,就是S{\displaystyleS}中的任何两点之间的直线段都属于S{\displaystyleS}。因此,凸集是一个连通空间。特殊凸集特殊凸集是特别给了名称的凸集,它们可能是具有额外性质的凸集,或是在某种定义下的凸集(非一般定义中的凸集)。具有额外性质的凸集绝对凸集:若S{\displaystyleS}既是凸集又是平衡集,则称S{\displaystyleS}为...
· 凸函数
性质函数(蓝色)是凸的,当且仅当其上方的区域(绿色)是一个凸集。定义在某个开区间C内的凸函数f在C内连续,且在除可数个点之外的所有点可微。如果C是闭区间,那么f有可能在C的端点不连续。一元可微函数在某个区间上是凸的,当且仅当它的导数在该区间上单调不减。一元连续可微函数在区间上是凸的,当且仅当函数位于所有它的切线的上方:对于区间内的所有x和y,都有f(y)≥f(x)+f"(x)(y−x)。特别地,如果f"(c)=0,那么c是f(x)的最小值。一元二阶可微的函数在区间上是凸的,当且仅当它的二阶导数是非负的;这可以用来判断某个函数是不是凸函数。如果它的二阶导数是正数,那么函数就是严格凸的,但反过来不成立。例如,f(x)=x的二阶导数是f"(x)=12x,当x=0时为零,但x是严格凸的。更一般地,多元二次可微的连续函数在凸集上是凸的,当且仅当它的黑塞矩阵在凸集的内部是半正定的。凸函数的任何极小值也...
· 凹凸贴图
具体实现BMEM技术BMEM技术通过一张叫做高度图(Heightmap)的灰度图来储存每一点的高度信息然后直接由API处理。法线贴图法主条目:法线贴图但事实上游戏编程员却通常并不喜欢使用BMEM技术,因为他执行速度慢,因此他们通常使用DP3技术:直接把高度图(Heightmap)转换成一张法线图(NormalMap),其图的RGB分别是原高度图该点的法线指向:Nx、Ny、Nz,这张图可由Direct3D的专门函数帮助我们计算。最后在渲染的时候直接将该高度图的每个像素与光源的向量点乘,即可得到表示每一点的明暗系数的图:根据高度图,越突出的地方,法线与光源夹角越小,该点的数值越大。接着将这张图乘到渲染线中即可,这样就使模型在背光的凹处有阴影而在面向光源处更亮的效果,这样的3D模型看起来就像真的凹凸不平一样!这些都可以直接在渲染流水线中由机器完成。具体可以使用以下简单的语句来实现://将光源位置...
· 凸透镜
历史窗户上的雨滴使得金门大桥看起来变得倒立和变小了。欧洲有关透镜的文字记载,最早出现在古希腊,在阿里斯托芬的戏剧云彩(纪元前424年)中就提到了烧玻璃(一种凸透镜,可以汇聚太阳光来点火);以《自然史》(NaturalisHistoria)一书留名后世的古罗马作家、科学家,老普林尼(23年–79年)的文字叙述中也表示罗马帝国知道烧玻璃,并且提及矫正透镜第一个可能的用途:说是尼禄用于观看格斗比赛使用的绿宝石。(虽然可供参考的资料并不明确,但推测是改正近视的凹透镜。)他与小普林尼和小瑟内卡(SenecatheYounger,前3年–65年)都描述充满了水的玻璃球有放大的功能。阿拉伯的数学家IbnSahl(c.940年–c.1000年)使用现在所知的史奈尔定律计算透镜的形状;Ibnal-Haitham(965年–1038年)撰写了第一篇光学的论文,描述透镜如何在人眼睛的视网膜上成像。最古老的人工制...
· 周氏凸墓志
凸墓志(十五世孙龙岩儒学教谕万里谨述)公讳停公大节谥忠武七世祖先,公由闰州丹阳县徙居江州瑞昌王仙乡,高祖干妣张氏,曾祖琮妣陈氏,祖祯妣汤氏,考煦妣倪氏,公性雄伟倜傥有大志,早以明经登科,授将仕郎,潭州司户参军,大中年间御史韦宙表公都牙推官甚器之,公以沉鸷有谋,循义守节相与戮力王室,出师平定川蜀,江西,湖南之乱,中和年间累官御史中丞加兵部尚书,天佑元年特敕奖谕,以公竭力输忠,保固封疆,充江州军事总管,余官如故三年变兴梁篡唐亡,公自是以暮年愤疾而终,男令坚令图令璩令祺令雄奉柩归葬故里大泉山子午向,迨今三百余年,公之七世孙师字一派兄弟四十有二人,厥后不仅以百千计,九世孙翼斋名谟,十一世孙勇斋名震龙,俱受业于朱文公之门,至元大德五年十二世孙实存崇广建追远祠堂于辂北,率族人以时祭祀,衣冠文物猗欤盛哉,时又得一履历辨方知江图志以公为仕南唐则非矣,今墓碑不存,而子孙之居有远近,多有不知公墓所在者,而春秋...

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信