zoukankan      html  css  js  c++  java
  • HDU2036 计算多边形的面积

        计算多边形面积就是通过拆分三角形的方法,即为选取任意一个点,从该点出发,连接多边形的每一个顶点,这样就将多边形分为了许多个三角形。计算每一个三角形的面积即可,用叉积计算的每一个三角形的面积为"有向面积",直接将所有三角形的有向面积相加,结果的绝对值就是多边形的面积。

    #define _CRT_SECURE_NO_DEPRECATE
    #include<iostream>
    #include<cmath>
    const double EPS = 1e-8;
    const int N = 301;
    using namespace std;
    struct Point{
        Point(double l = 0, double r = 0) :x(l), y(r){};
        double x, y;
    };
    Point operator-(Point a, Point b){
        return Point(a.x - b.x, a.y - b.y);
    }
    double Cross(Point p0, Point p1, Point p2){
        Point a = p1 - p0;
        Point b = p2 - p0;
        return a.x*b.y - b.x*a.y;
    }
    int n;
    Point P[N];
    double ans;
    int main(){
        int i;
        Point P0;
        while (scanf("%d", &n) && n){
            ans = 0;
            for (i = 0; i < n; i++)
                scanf("%lf%lf", &P[i].x, &P[i].y);
            P[n++] = P[0];
            for (i = 0; i < n - 1; i++){
                ans += Cross(P0, P[i], P[i + 1]);
            }
            ans = abs(ans / 2);
            printf("%.1lf
    ", ans);
        }
        return 0;
    }
  • 相关阅读:
    GHOST CMS
    某小姑娘治疗案
    关于ssl证书的一些知识
    Hbuiler中常用的快捷键
    跌落损任胸胁案
    老年脑梗案
    Centos7安装完成后设定基本的网络配置
    Centos7下的文件压缩
    在centos7上用docker安装宝塔面板
    右手中指一侧麻木案
  • 原文地址:https://www.cnblogs.com/td15980891505/p/5735267.html
Copyright © 2011-2022 走看看