ACM-计算几何学-计算多边形的面积
程序员文章站
2022-03-02 10:56:06
...
ACM-计算几何学-计算多边形的面积
计算多边形的面积有着固定的公式
1.当题目逆时针给出坐标时,计算得到的值为正
2.当题目顺时针给出坐标时,计算得到的值为负
==循环套用公式:
a
n
s
+
=
0.5
∗
(
x
i
∗
y
i
+
1
−
x
i
+
1
∗
y
i
)
ans+=0.5*( x _i *y_i +_1-x_i+_1*y_i)
ans+=0.5∗(xi∗yi+1−xi+1∗yi)
采用循环的方式,即第一个与第二个相减,第二个与第三个相减…,一直到最后一个与第一个相减。
参考博客
#include <cstdio>
#include <iostream>
using namespace std;
#define ll long long
#define x first
#define y second
#define PII pair
PII num[105];
int main()
{
int n;
int ans=0;
while(scanf("%d",&n)&&n)
{
ans=0;
for(int i=0;i<n;i++)
{
cin>>num[i].x>>num[i].y;
}
num[n].x=num[0].x;
num[n].y=num[0].y;
for(int i=0;i<n;i++)
{
ans+=0.5*(num[i].x*num[i+1].y-num[i+1].x*num[i].y);
}
cout<<ans<<endl;
}
return 0;
}