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