平面三角形外接圆圆心与半径求解算法

平面三角形外接圆圆心与半径求解算法直角三角形的外心 即三边垂直平分线交点 在斜边的中点上 因此直角三角形的外接圆半径就等于斜边的一半 2 求外接圆半径 三角形三边为 a b c 半周长 p a b c 2 三角形面积 S p p a p b p c 海伦公式 内切圆半径 r S p p a p b p c p

大家好,我是讯享网,很高兴认识大家。
  1. 直角三角形的外心(即三边垂直平分线交点)在斜边的中点上,因此直角三角形的外接圆半径就等于斜边的一半

    2. 求外接圆半径

    三角形三边为 a、b、c

    半周长     p=(a+b+c)/2
    三角形面积 S=√[p(p-a)(p-b)(p-c)]   (海伦公式)
    内切圆半径 r = S/p
                           =√[(p-a)(p-b)(p-c)/p]
                           = ½√[(-a+b+c)(a-b+c)(a+b-c)/(a+b+c)]
    外接圆半径 R= abc/(4S)
                            = ¼ abc/√[p(p-a)(p-b)(p-c)]
                            = abc/√[(a+b+c)(-a+b+c)(a-b+c)(a+b-c)]
    R、r、S 关系

    rR = S/p *  abc/(4S) = abc/[2(a+b+c)]

    3. 求外接圆圆心


    讯享网

    三维矩阵行列式:


    4. 实现代码(C++)

    / 处理:如三点共线,则返回false;否则,返回true,并将计算得到的圆心与半径存放在center和radius众返回。 */ bool triangleCircle(const Point& p1,const Point& p2,const Point& p3,Point &center,double &radius)
    { //检查三点是否共线 if( isThreePointsOnOneLine(p1,p2,p3) )
    讯享网return false; 
    double x1,x2,x3,y1,y2,y3; x1 = p1.x; x2 = p2.x; x3 = p3.x; y1 = p1.y; y2 = p2.y; y3 = p3.y; //求外接圆半径 double a=sqrt( (x1-x2)(x1-x2)+(y1-y2)(y1-y2) ); double b=sqrt( (x1-x3)(x1-x3)+(y1-y3)(y1-y3) ); double c=sqrt( (x2-x3)(x2-x3)+(y2-y3)(y2-y3) ); double p=(a+b+c)/2; double S=sqrt( p(p-a)(p-b)*(p-c) ); radius=a*b*c/(4*S); //求外接圆圆心 double t1=x1*x1+y1*y1; double t2=x2*x2+y2*y2; double t3=x3*x3+y3*y3; double temp=x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2; double x=(t2*y3+t1*y2+t3*y1-t2*y1-t3*y2-t1*y3)/temp/2; double y=(t3*x2+t2*x1+t1*x3-t1*x2-t2*x3-t3*x1)/temp/2; center.x = x ; center.y = y ; return true; } / 判断3个点是否共线 */ bool isThreePointsOnOneLine(const Point& p1,const Point& p2,const Point& p3){ if(p2.x==p1.x){
    if(p2.x==p3.x) return true; return false; 
    }else{
    讯享网if(p2.x==p3.x) return true; 
    } //判断依据:p2与p1两点构成直线的斜率=p2与p3两点构成直线的斜率 double k1=(p2.y-p1.y)/(p2.x-p1.x); double k2=(p3.y-p2.y)/(p3.x-p2.x); double DIFF=0.00000001; if( fabs(k1-k2)<DIFF )
    return true; 
    return false; }

    讯享网

    参考资料:

    1. 三角形外接圆半径公式:http://zhidao.baidu.com/link?url=1WKM_z0Vfaejav_OnjsiSJtFf1LFyEKPaS4EPswqkd5xBbCAAJzNZNn3qwVpS_XymmetcTDhCQ4HRShVXEjDI_

    2. 三角形外接圆圆心公式:http://zhidao.baidu.com/link?url=-3KVP3Gi5Nqs6gEb_gYt1TfWSDhcI13Etsd8xeMorWiQ64x7v8HMapIU-pVx7GHjIPZbHvfQejx3uGDnmi6UI_


小讯
上一篇 2025-03-08 11:09
下一篇 2025-01-14 08:02

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/37327.html