首页 > 技术文章 > 如何计算任意多边形的面积?

blogofddw 2021-03-20 10:26 原文

对二维平面上的一个多边形\(\Phi\)的顶点按顺序(顺时针或逆时针)编号为\(P_1,P_2, \cdots ,P_n\)。为了方便,定义\(P_{n+1}=P_1\),记\(P_i\)的坐标为\((x_i,y_i)\)。则该多边形的面积为

\[A=\frac{1}{2}\left | \sum_{i=1}^{n} x_iy_{i+1}+x_{i+1}y_i \right |=\frac{1}{2}\left | \sum_{i=1}^{n} P_i\times P_{i+1} \right | \]


证明(用格林公式):

\[\begin{align}\notag A&=\int_{\Phi}dA =\int_{\Phi}dxdy\\\notag &=\int_{\Phi}d(xdy)=\int_{\partial\Phi}xdy\\\notag &=\sum_{i=1}^{n}\int_0^1[(1-t)x_i+tx_{i+1}](y_{i+1}-y_i)dt\\\notag &=\sum_{i=1}^{n}\frac{1}{2}(x_{i+1}y_{i+1}-x_{i+1}y_i-x_iy_{i+1}+x_iy_i)+x_iy_{i+1}-x_iy_i\\\notag &=\frac{1}{2}\sum_{i=1}^{n}(x_iy_{i+1}-x_{i+1}y_i)+\frac{1}{2}\sum_{i=1}^{n}(x_{i+1}y_{i+1}-x_iy_i) \end{align} \]

后一个求和中各项相互抵消,所以

\[A=\frac{1}{2}\left ( \sum_{i=1}^{n} x_iy_{i+1}+x_{i+1}y_i \right ) \]

考虑到顶点的方向不一定是正向的,再套上一对绝对值符号。这就完成了证明。

推荐阅读