欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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(xiyi+1xi+1yi)

采用循环的方式,即第一个与第二个相减,第二个与第三个相减…,一直到最后一个与第一个相减。
参考博客

参考题目:改革春风吹满地

#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;
}