求任意凸多边形面积

旧街凉风 提交于 2020-01-28 00:42:58

任意给出一个三角形ΔABC,设其顶点坐标分别为A(x1, y1),B(x2, y2),C(x3, y3),那么根据线性代数的知识,ΔABC的有向面积可表示为:

在这里插入图片描述

给出任意一个多边形,其顶点坐标依次为(x0,y0),(x1,y1),(x2,y2),…,(xn,yn)(其中n=2,3,4,…),则其面积可表示为:

在这里插入图片描述

故计算的函数为:

double any_ploygon_area(int x,int y,int n){
	double sum=0;
	for (int i=0;i<n-1;i++){
		sum += (x[i]*y[i+1]-x[i+1]*y[i]);
	}
	double square = (fabs(sum+(x[n-1]*y[0])-(x[0]*y[n-1])))/2;
	return square;
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!