VC已知圆弧上三点求出圆心坐标及半径

求解过程简单直接上完成的函数

# include <math.h>
void get_circle(double x1, double y1, double x2, double y2, double x3, double y3,)
{

        double r,  x0,  y0;
        double x12 = x2 - x1;
        double y12 = y2 - y1;
        double x13 = x3 - x1;
        double y13 = y3 - y1;
        double z2 = x12*(x1 + x2) + y12*(y1 + y2);
        double z3 = x13*(x1 + x3) + y13*(y1 + y3);
        double dt = 2.0 *(x12 * (y3 - y2) - y12* (x3 - x2));
        if(fabs(dt)  < 1e-5)
         {
            r = -1;
            return;
        }
        x0 = (y13 * z2 - y12 * z3) / dt;
        y0 = (x12 * z3 - x13 * z2) / dt;      
   
        r = sqrt((x1 - x0) * (x1 - x0) + (y1 - *y0) * (y1 - *y0));
       
        CString str; 
        str.Format("R=%0.3f x0=%0.3f  y0=%0.3f", r, *x0, *y0);
        AfxMessageBox(str);
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值