HDU-#2036 改革春风吹满地(多边形面积)

来源:互联网 发布:javashop4.0 源码 编辑:程序博客网 时间:2024/04/30 04:50

      题目大意:逆时针方向给出多边形边数以及各个顶点坐标,求多边形面积。

     解题思路:这是一道计算几何入门题,直接就是模板题,但要注意顶点输入要按照逆时针方向,该题不存在这个问题。详见code。

     题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=2036

     code:

#include <iostream>#include <cstdio>#include <cmath>#include <algorithm>using namespace std;const int MAXN=100+10;int n;struct node{    double x,y;}p[MAXN];double areaofp(node p[],int n){ //计算几何模板    double area=0;    for(int i=1;i<=n;i++)        area+=p[i-1].x*p[i%n].y-p[i-1].y*p[i%n].x;    return fabs(area/2.0); //输出绝对值,防止产生负数}int main(){    while(scanf("%d",&n)!=EOF && n){        for(int i=0;i<n;i++) //接收各点坐标,注意这里必须要逆时针方向输入顶点坐标            scanf("%lf%lf",&p[i].x,&p[i].y);        printf("%.1lf\n",areaofp(p,n));    }    return 0;}


0 0
原创粉丝点击