求任意多边形面积
程序员文章站
2024-03-16 20:20:28
...
已知N个顶点的坐标,求多边形的面积
将面积分成若干个三角形,通过向量的叉积求得三角形面积。
#include<stdio.h>
struct point
{
double x,y;
}p[105];
//求任意多边形面积:将面积分成若干个三角形,通过向量的叉积求得三角形面积。
int main()
{
int n;
int i,j,k;
while(~scanf("%d",&n))
{
double sum = 0;
if(n == 0)
break;
for(i = 0;i < n;i ++)
{
scanf("%lf %lf",&p[i].x,&p[i].y);
}
for(i = 0;i < n - 1;i ++)
{
sum += (p[i].x * p[i + 1].y - p[i + 1].x * p[i].y) * 0.5; //三角形面积
}
sum += (p[n - 1].x * p[0].y - p[0].x * p[n - 1].y) * 0.5;
printf("%.1lf\n",sum);
}
return 0;
}
上一篇: 将法线从模型空间变换到世界空间
下一篇: 鼠标拖动屏幕控制相机旋转(含移动端)