您的位置:首页 > 其它

计算多边形面积

2018-01-10 20:20 155 查看

说明

我们假定得到了按照逆时针顺序给出的 n 个顶点的坐标(x1, y1, x2, y2… xn, yn)且坐标均为整数。

那么最简洁的方法就是计算向量叉积(其实也是算行列式)来求,对凹多边形也适用。直观的理解是将多边形分为了若干个小三角形分别求面积。

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;

int main(void)
{
int n, i, x[101], y[101];
double sum;
while(cin >> n && n){
for (i = 0; i < n; ++i)
cin >> x[i] >> y[i];
sum = 0;
for (i = 0; i < n - 1; ++i)
sum += (x[i] * y[i + 1] - x[i + 1] * y[i]);
sum = (fabs(sum + x[i] * y[0] - x[0] * y[i])) * 1.0 / 2;
printf("%.1f\n", sum);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: