求任意多边形面积(凹多边形和凸多边形)

遇到问题:已知多边形的各个左边点,要求多边形的面积

然后我搜索了下看到这篇文章:https://blog.csdn.net/tianyuhang123/article/details/56094559

这个人说的不多,但是简单明了:

首先已知各定点的坐标分别为(x1,y1),(x2,y2),(x3,y3)。。。,(Xn,Yn)

则该多边形的面积公式为

s=1/2*[(x1*y2-x2*y1)+(x2*y3-x3*y2)+...... +(Xk*Yk+1-Xk+1*Yk)+...+(Xn*y1-x1*Yn) ]

这个面积公式可能算出来是正的,也有可能是负的,所以要加绝对值。

最后的面积为:s=abs(s)。

他还附上了C++的代码,有需要的可以看下。

我以为这是算凸多边形面积的公式,心想能不能也有算凹多边形面积的公式。然后我搜到了这篇文章:

http://www.cnblogs.com/TenosDoIt/p/4047211.html

这个人较详细的说明了上面公式也是可以应用于凹多边形的。

在搜索过程中,还发现了另外一种方法:皮克公式。

https://zh.wikipedia.org/wiki/%E7%9A%AE%E5%85%8B%E5%AE%9A%E7%90%86

这个方法也可以求任意多边形面积。不过有限制条件,而且需要栅格的那种。

猜你喜欢

转载自blog.csdn.net/tingfenghanlei/article/details/81360216
今日推荐