语法:result=polygonarea(Point *polygon,int N);
参数:
*polygon:多变形顶点数组
N:多边形顶点数目
参数:
*polygon:多变形顶点数组
N:多边形顶点数目
返回值:多边形面积
注意:
支持任意多边形,凹、凸皆可
多边形顶点输入时按顺时针顺序排列
源程序:
typedef struct {
double x,y;
} Point;
double polygonarea(Point *polygon,int N)
{
int i,j;
double area = 0;
for (i=0;i<N;i++) {
j = (i + 1) % N;
area += polygon[i].x * polygon[j].y;
area -= polygon[i].y * polygon[j].x;
}
area /= 2;
return(area < 0 ? -area : area);
}
三角形面积::
1. 海伦公式
p = (a+b+c)/2;
S = sqrt(p*(p-a)*(p-b)*(p-c));
2. 知三点坐标求面积
A(x1,y1),B(x2,y2),C(x3,y3);
S = fabs(-x2 * y1 + x3*y1+x1*y2-x3*y2-x1*y3+x2*y3) / 2.0;