美文网首页
计算凸四边形面积

计算凸四边形面积

作者: 疯人愿的疯言疯语 | 来源:发表于2018-12-18 15:08 被阅读0次
    /*
    计算凸四边形面积
    原理:分为两个三角形分别计算面积
    海伦公式:S=sqrt(p*(p-a)*(p-b)*(p-b))      p为周长的一般,a,b,c为三边长度
    */
    #include <iostream>
    #include <math.h>
    using namespace std;
    
    struct proposal_type{
        int x1,x2,x3,x4,y1,y2,y3,y4;
        double score;
    };
    
    double calcularea(const proposal_type & r){
        float d12=sqrt(pow(r.x2-r.x1,2)+pow(r.y2-r.y1,2));
        float d14=sqrt(pow(r.x4-r.x1,2)+pow(r.y4-r.y1,2));
        float d24=sqrt(pow(r.x2-r.x4,2)+pow(r.y2-r.y4,2));
        float d32=sqrt(pow(r.x2-r.x3,2)+pow(r.y2-r.y3,2));
        float d34=sqrt(pow(r.x3-r.x4,2)+pow(r.y3-r.y4,2));
        float p1=(d12+d14+d24)/2;
        float p2=(d24+d32+d34)/2;
        float s1=sqrt(p1*(p1-d12)*(p1-d14)*(p1-d24));
        float s2=sqrt(p2*(p2-d32)*(p2-d34)*(p2-d24));
        return s1+s2;
    }
    int main()
    {
        proposal_type r1;
        r1.x1=0;
        r1.y1=0;
        r1.x2=3;
        r1.y2=0;
        r1.x3=3;
        r1.y3=2;
        r1.x4=2;
        r1.y4=2;
        r1.score=1.2;
        cout << calcularea(r1)<< endl;
        return 0;
    }
    
    

    相关文章

      网友评论

          本文标题:计算凸四边形面积

          本文链接:https://www.haomeiwen.com/subject/htxckqtx.html