原理:将多边形分成多个三角形,而三角形的面积等于其中两条边向量的乘积,多个相加其中有几个约掉
三角形的面积(点(x0,y0)(x1,y1),(x2,y2))
fabs((x1-x0)*(y2-y0)-(y1-y0)*(x2-x0))
多边形polygon的面积
typedef struct {
double x,y;
} Point;
double polygonarea(Point *polygon,int N) for (i=0,j=1;i<N-1;i++,j++) {
{
int i,j;
double area = 0;
area+= polygon[i].x * polygon[j].y;
area -= polygon[i].y * polygon[j].x;
}
area+=polygon[n-1].x*polygon[0].y;
area-= polygon[n-1].y*polygon[0].x;
area /= 2;
return(area < 0 ? -area : area);
}
本文介绍了如何通过叉乘法来计算三角形和多边形的面积。通过将多边形分割成多个三角形,然后利用两条边向量的叉乘积求得每个三角形的面积,最后将所有面积相加(注意消除重复项),即可得到多边形的总面积。代码示例中展示了如何定义点的结构体,并实现了一个计算多边形面积的函数。
799

被折叠的 条评论
为什么被折叠?



