个人博客:The Blog Of WaiterXiaoYY 欢迎来互相交流学习。
啥是鞋带公式(shoelace)
Shoelace公式,也叫高斯面积公式,是一种数学算法,可求确定区域的一个简单多边形的面积。
该多边形是由它们顶点描述笛卡尔坐标中的平面。
用户交叉相乘相应的坐标以找到包围该多边形的区域,
并从周围的多边形中减去该区域以找到其中的多边形的区域。
之所以称为鞋带公式,是因为对构成多边形的坐标进行恒定的交叉乘积,就像系鞋带一样。
——以上来自维基百科。
长的很像鞋带
为什么叫做鞋带公式,这是因为在计算的过程很像鞋带一样缠绕着,
比如一个多边形(三角形),
三个顶点分别是 A:(x1, y1)
, B:(x2, y2) ,
C:(x3, y3)
鞋带公式是这样子算的:
S 三 角 形 = 0.5 ∗ ( ( x 1 ∗ y 2 + x 2 ∗ y 3 + x 3 ∗ y 1 ) − ( y 1 ∗ x 2 + y 2 ∗ x 3 + y 3 ∗ x 1 ) ) S三角形 = 0.5 * ((x1 * y2 + x2 * y3 + x3 * y1) - (y1 * x2 + y2 * x3 + y3* x1)) 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 S三角形 = 0.5 * ((0 * 0 + 0 * 0 + 3 * 4) - (4 * 0 + 0 * 3 + 0 * 0)) = 6 S三角形=0.5∗((0∗0+0∗0+3∗4)−(4∗0+0∗3+0∗0))=6
在计算多边形面积的时候很方便。
终极公式
公式中约定: 当下标大于 n 时,
X
n
+
1
=
X
1
,
Y
n
+
1
=
Y
1
。
Xn+1=X1, Yn+1=Y1。
Xn+1=X1,Yn+1=Y1。