<p>你可以用鞋带公式得到一些多边形“轮廓”内的面积</p>
<p>其思想是通过求和/减去多边形边之间和轴上的面积来增量计算面积,在通过多边形轮廓完成一个循环后,求和/减去的结果将是多边形内的面积</p>
<pre><code>j = numPoints-1
for (uint_fast8_t i=0; i<numPoints; i++)
{
area = area + (contour[j][0]+contour[i][0]) * (contour[j][1]-contour[i][1]);
area1 = area1 + (contour[j][0]*contour[i][1]) - (contour[j][1]*contour[i][0]); //different form for the formula
j = i; //j is previous vertex to i
}
</code></pre>
<p>面积=面积/2;
area1=area1/2;//面积符号取决于旋转方向</p>
<p><a href="https://en.wikipedia.org/wiki/Shoelace_formula" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Shoelace_formula</a></p>
<p><a href="https://www.mathopenref.com/coordpolygonarea.html" rel="nofollow noreferrer">https://www.mathopenref.com/coordpolygonarea.html</a></p>
<p><a href="https://www.mathopenref.com/coordpolygonarea2.html" rel="nofollow noreferrer">https://www.mathopenref.com/coordpolygonarea2.html</a></p>
<p>对于python</p>
<p><a href="https://www.101computing.net/the-shoelace-algorithm/" rel="nofollow noreferrer">https://www.101computing.net/the-shoelace-algorithm/</a></p>