zoukankan      html  css  js  c++  java
  • uva 11437

    这是一道简单的计算几何;

    In the picture below you can see a triangle ABC. Point D, E and F divides the sides BC, CA and AB into ratio 1:2 respectively. That is CD=2BD, AE=2CE and BF=2AF. A, D; B, E and C, F are connected. AD and BE intersects at P, BE and CF intersects at Q and CF and AD intersects at R.

    So now a new triangle PQR is formed. Given triangle ABC your job is to find the area of triangle PQR.

     这是我在uva上做的第一道题,纪念一下 =_=

    #include<iostream>
    
    using namespace std;
    
    typedef struct points
    {
        double x,y;
        points(double xx=0,double yy=0):x(xx),y(yy){}
    }vectors;
    
    points operator + (points a,vectors b)
    {
        return points(a.x+b.x,a.y+b.y);
    }
    vectors operator - (points a,points b)
    {
        return vectors(a.x-b.x,a.y-b.y);
    }
    vectors operator * (double a,vectors b)
    {
        return vectors(a*b.x,a*b.y);
    }
    double cross(vectors a,vectors b)
    {
        return a.x*b.y-a.y*b.x;
    }
    points inter(points a,points b,points c,points d)
    {
        vectors v=b-a,w=d-c,u=a-c;
        double t=cross(w,u)/cross(v,w);
        return a+t*v;
    }
    
    int main()
    {
        points a,b,c,d,e,f,p,q,r;
        int n,area;
        cin>>n;
        while(n--)
        {
            cin>>a.x>>a.y>>b.x>>b.y>>c.x>>c.y;
            d=b+1/3.0*(c-b);
            e=c+1/3.0*(a-c);
            f=a+1/3.0*(b-a);
            p=inter(a,d,b,e);
            q=inter(b,e,c,f);
            r=inter(c,f,a,d);
            area=(int)(0.5+cross(q-p,r-p)/2);
            cout<<area<<endl;
        }
        return 0;
    }
    


  • 相关阅读:
    IDEA插件和快捷设置
    漫谈虚拟内存
    漫谈进程和线程
    漫谈计算机语言
    初识Python
    数据库物理设计
    漫谈计算机体系
    数据库逻辑设计
    NLP中几种分词库的简单使用(Python)
    ML————朴素贝叶斯原理和SKlearn相关库
  • 原文地址:https://www.cnblogs.com/pangblog/p/3266716.html
Copyright © 2011-2022 走看看