您的位置:首页 > 其它

【暑期基础2】K HDU 2036 改革春风吹满地(多边形面积)

2015-08-06 12:39 381 查看

题意

已知 n 边形的 n 个定点的坐标,求这个 n 边形的面积。

思路

任意一个 n 边形都可以细分为多个小三角形,根据三角形的定点坐标求面积,可以参考百度文库的《 已知三点坐标,求三角形面积 》一文。

AC 代码 *

#include <stdio.h>
#define MAX 105

int x[MAX], y[MAX];

float area(int c, int d, int e, int f) {
int a = x[0];
int b = y[0];
return ( a * d + c * f + b * e - e * d - c * b - a * f ) / 2.0;
}
int main() {
int n, i;
float sum;
while ( scanf("%d", &n) != EOF && n) {
sum = 0;
for ( i = 0; i < n; i++) {
scanf("%d%d", &x[i], &y[i]);
}
for( i = 0; i < n - 2; i++){
sum += area(x[i+1], y[i+1], x[i+2], y[i+2]);
}
printf("%.1f\n", sum);
}
return 0;
}


* 注:在 HUST 的 Virtual Judge 上测试 AC
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: