zoukankan      html  css  js  c++  java
  • 果园里的树

    题目:

    原理:如果点在三角形内部,则三个小三角形的面积之和等于大三角形的面积

    重点是~

    //果园里的树 
    #include<iostream>
    #include<cmath>
    #define EPS 1e-9
    using namespace std;
    
    double area2(double x0, double y0, double x1, double y1, double x2, double y2)
    {
        double s = x0 * y1 + x1 * y2 + x2 * y0 - x0 * y2 - x1 * y0 - x2 * y1;
        if(s < 0)
            s = -1 * s;
        return s;
    }
    
    int main()
    {
        double x0, y0, x1, y1, x2, y2;
        cin >> x0 >> y0 >> x1 >> y1 >> x2 >> y2;
        double min_x, min_y, max_x, max_y;
        
        //计算包含三角形的最小矩形    
        min_x = x0 < x1 ? x0 : x1;
        min_x = min_x < x2 ? min_x : x2;
        min_x = floor(min_x);       //下限 
        min_y = y0 < y1 ? y0 : y1;
        min_y = min_y < y2 ? min_y : y2;
        min_y = floor(min_y);
        
        max_x = x0 > x1 ? x0 : x1;
        max_x = max_x > x2 ? max_x : x2;
        max_x = ceil(max_x);       //上限 
        max_y = y0 > y1 ? y0 : y1;
        max_y = max_y > y2 ? max_y : y2;
        max_y = ceil(max_y);
        
        //对矩形内的点依次做判断 
        double s = area2(x0, y0, x1, y1, x2, y2);    
        int c1 = 0, c2 = 0;
        
        for(int i = min_x; i <= max_x; i++)
        {
            for(int j = min_y; j <= max_y; j++)
            {
                double s1 = area2(i, j, x0, y0, x1, y1); 
                double s2 = area2(i, j, x0, y0, x2, y2); 
                double s3 = area2(i, j, x1, y1, x2, y2);
                
                if(s1 + s2 + s3 - s <= EPS)        //分布在三角形内部的坐标点 
                    c1++;            
                if((s1 <= EPS) || (s2 <= EPS) || (s3 <= EPS))        //分布在三角形边界的坐标点
                    c2++;
            }
        }
        
        cout << c1 << endl;
        cout << c2 << endl;
        
        return 0;
    }
  • 相关阅读:
    wppay免登录付费查看隐藏内容/付费资源下载
    个人网站html5雪花飘落代码JS特效下载
    HTML5 audio 如何实现播放多个MP3音频
    网站html代码解析
    vue-webpack模板升级到webpack4
    npm安装cnpm
    单个div充满屏幕的CSS方法
    vue监听滚动事件-元素固定位置显示
    HTML5中判断横屏竖屏
    The META for Mobile terminal
  • 原文地址:https://www.cnblogs.com/fengyanlover/p/5293943.html
Copyright © 2011-2022 走看看