1.已知多边形的点坐标,求面积
case1:点已经按照顺时针or逆时针排序好
x[n]=x[0] , y[n]=y[0];
for(int i =0;i<n;i++)
{
sum+=(x[i]*y[i+1]-x[i+1]*y[i]);
}
s= fabs(sum*0.5);
case2:给定点的坐标,不确定有无排序
取一个多边形任意一个顶点(x0,y0),向其他的顶点连线,将多边形分成(n-2)个三角形,设每个三角形的另两个顶点为(x1,y1),(x2,y2),则这个三角形面积为(|(x1-x0)*(y2-y0)|+|(x2-x0)*(y1-y0)|)/2,多边形的面积就是所有三角形的面积和
float result(int num,int x[ ],int y[ ])
{
int s;
for(int i =1;i<num;i+=2)
s+=(fabs((x[i]-x[0])*(y[i+1]-y[0]))+fabs((x[i+1]-x[0])*(y[i]-y[0])))/2;
}
2.切割平面。
case1:直线
1/2*n*(n+1)+1
case2:折线
2*n*n-n+1
3.求三角形面积。
case1:海伦公式
s = sqrt(p*(p-a)*(p-b)*(p-c))
p = (a+b+c)/2;
case2:向量的叉积
s = fabs(x1*y2-x2*y1);