鞋带定理(Shoelace formula)求2D多边形面积

参考
鞋带公式——多边形面积求和
GIS算法:利用鞋带定理(Shoelace formula)求2D多边形面积

一、简单解释

鞋带公式 (Shoelace formula),也叫高斯面积公式,是一种数学算法,可求确定区域的一个简单多边形的面积。该多边形是由它们顶点描述笛卡尔坐标中的平面。用户交叉相乘相应的坐标以找到包围该多边形的区域,并从周围的多边形中减去该区域以找到其中的多边形的区域。之所以称为鞋带公式,是因为对构成多边形的坐标进行恒定的交叉乘积,就像系鞋带一样。——以上来自维基百科en.wikipedia.org/wiki/Shoelace_formula。

为什么叫做鞋带公式,这是因为在计算的过程很像鞋带一样缠绕着,比如一个多边形(三角形),三个顶点分别是 A:(x1, y1) , B:(x2, y2) , C:(x3, y3) 鞋带公式是这样子算的:


image.png

S三角形=0.5∗((x1∗y2+x2∗y3+x3∗y1)−(y1∗x2+y2∗x3+y3∗x1))

我们代个数进去试试A:(0, 4) , B:(0, 0) , C:(3, 0) ,代进公式中:S 三 角 形 = 0.5 ∗ ( ( 0 ∗ 0 + 0 ∗ 0 + 3 ∗ 4 ) − ( 4 ∗ 0 + 0 ∗ 3 + 0 ∗ 0 ) ) = 6

二、更复杂的例子
image.png

首先参考一个例子,展示如何利用鞋带定理计算多边形面积。我们只需选择一个顶点,然后按照逆时针顺序读取坐标,最后回到起点。并按照类似系鞋带的顺序将坐标串联起来。

image.png

对于绿色的线链接的坐标直接相乘。红色的相乘;最后把两者相减。重复操作,最后将计算好的数累和得到4+2+30+24+22+28=110,则多边形的面积为110/2=55


image.png
三、以三角形为例进行证明

对于一个三角形,我们可以将其转换为求平行四边形面积的一半


image.png

取三角形的坐标,a、b和c、d构建两个矩形。两个绿色的直角三角形是大矩形的两个空白,补上了平行四边形和小矩形部分。易知大矩形的面积等于平行四边形加小矩形(小矩形与平行四边形有重叠部分),即ad = S平等四边形+bc,得到S平等四形=ad-bc,S三角形面积=0.5*(ad-bc)

注:这里可以将下图中,底部直角三角形移到顶部,左侧直角三角形移到右上角,可以看到大矩形的面积就是图中橙色和绿色区域之和,并且绿色重叠部分要算两遍。重新拆解组合,先算平等四边形,会发现绿色重叠部分还要算一次,而它正好和旁边的两个绿色小直角三形组合成绿色小矩形。

image.png
image.png

其实熟悉向量叉乘的话,会发现这个公式很容易,可以参考Cocos 向量应用

四、推广到任意多边形

上个例子的多边形就可以拆分成多个三角形,对各组坐标的叉乘最终计算得出了三角形的面积,累加起来就得到了多边形的面积。

image.png

如图多边形,原点p在多边形外面,使用鞋带定理计算面积。可以发现从V1开始逆时针遍历顶点。如果线段pv1是划向逆时针方向,三角形就是正数,划向顺时针方向为负数。正负抵消最终得到多边形面积


image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • 题目在这里:2036 改革春风吹 这题的目的就是求多边形的面积,求多边形的面积是通过将多边形分割成多个三角形,然后...
    Buffalooo阅读 716评论 0 1
  • 上学时曾读过一本算法竞赛书,其中一章介绍几何算法。因为平时很少接触,所以当时在我看来,几何问题都有一种瑰丽神奇的色...
    packet阅读 1,652评论 0 1
  • 大家都知道世界上有正方形,长方形,三角形,梯形,平行四边形等等图案吧,其实这些图案都属于多边形。可是如果在数学中多...
    橄榄树煜舒阅读 451评论 0 0
  • 在我们学多边形的面积时老师让我们小组里讨论还告诉我说现在知道直角三角形的面积和正方形长方形的面积怎么求现在如何求出...
    老VS王阅读 421评论 0 0
  • 来自非一班 小惠同学 土豆:今日推荐小惠同学关于多边形面积的研究,这已经是小惠的二稿啦!五年级上学期学习多边形的面...
    小土豆上学阅读 2,820评论 0 0