任意多边形的面积公式

时间:2023-01-08 10:54:05

设Ω是m边形(如下图),顶点任意多边形的面积公式沿边界正向排列,坐标依次为
任意多边形的面积公式
建立Ω的多边形区域向量图。
由图知坐标原点与多边形任意相邻的两个顶点构成一个三角形,而三角形的面积可由三个顶点构成的两个平面向量的外积求得。
任意多边形的面积公式
任意多边形的面积公式
多边形计算公式的计算和原点的选取没有关系,通常可以选点(0,0)或者多边形的第一个点(这个时候比较直观了,看起来就是把多边形分成一个个三角形和加起来,读者自己可以画个图)就可以了。
任意多边形的面积公式

以下代码是正确的,经过测试过的,也是现在所使用的

double calArea(std::vector<int>& u,std::vector<int>& v)  
{

int su = u.size();

int sv = v.size();

int size = (su<sv?su:sv);

if(size<3) return 0;

double Area = 0;

for(int i=0; i<size; ++i)
{
Area += u[i]*double(v[(i+1+size)%size]-v[(i-1+size)%size]);
}

Area = int(fabs(double(Area)/2.0)+0.5);

return Area;
}