【题目大意】 有若干个多边形(不一定是凸包),按顺序给出它的顶点。求这些多边形的面积(四舍五入)。
板题。
#include<bits/stdc++.h>
using namespace std;
struct point{
double x,y;
point(double _x=0,double _y=0){x=_x,y=_y;}
friend inline double operator *(const point &a,const point &b){
return a.x*b.y-b.x*a.y;
}
}p[23333];
int k;
int main(){
while(scanf("%d",&k)==1&&k){
double ans=0;
for(int i=1;i<=k;++i)
scanf("%lf%lf",&p[i].x,&p[i].y);
p[k+1]=p[1];
for(int i=1;i<=k;++i){
ans+=p[i+1]*p[i];
}
cout<<int(fabs(ans/2)+0.5)<<'\n';
}
}
本文介绍了一种使用C++实现的计算多边形面积的方法,通过输入多边形顶点坐标,利用叉乘计算并求和得到面积。适用于计算机图形学、地理信息系统等领域中对多边形面积进行快速计算的需求。
1586

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



