已知两点坐标和半径,求圆心 您所在的位置:网站首页 已知圆方程求圆心公式 已知两点坐标和半径,求圆心

已知两点坐标和半径,求圆心

2024-07-10 12:57| 来源: 网络整理| 查看: 265

已知圆上的两点坐标和半径,求圆心。数学分析:这个题目,涉及到简单的数学问题,但是计算比较繁琐。假设已知圆上的两点坐标分别为N(X1,Y1)和M(X2,Y2),半径为R,圆心坐标为o(a,b),根据数学知识可得到:(x1-a)^2 + (y1-b)^2 = R^2----(1)式(x2-a)^2 + (y2-b)^2 = R^2----(2)式分别展开上述两个式子得到(x1)^2 - 2*x1*a + a^2 + (y1)^2 - 2*y1*b + b^2 = R^2 ----(3)式(x2)^2 - 2*x2*a + a^2 + (y2)^2 - 2*y2*b + b^2 = R^2 ----(4)式(3)式 - (4)式得到: x1^2 - x2^2 + 2*(x2-x1)*a + y1^2 - y2^2 + 2*(y2-y1)*b = 0变形得到:a = (x2^2 - x1^2 + y2^2 - y1^2)/2/(x2-x1) - (y2-y1)/(x2-x1) * b设:C1 = (x2^2 - x1^2 + y2^2 - y1^2)/2/(x2-x1)设:C2 = (y2-y1)/(x2-x1)a = c1 - c2 * b ----(5)式把(5)式代入(1)式,得到;x1^2 - 2*x1*(C1-C2*b) + (C1-C2*b)^2 + y1^2 -2*y1*b + b^2 = R^2展开简化为关于b的一元二次方程一般形式;(C2^2+1)*b^2 + (2*x1*C1-2*C1*C2-2*y1)*b + x1^2-2*x1*C1+C1^2+y1^2-R^2 = 0 得到求b的方程组 二次项系数:A = (C2^2+1)一次项系数:B = (2*x1*C1-2*C1*C2-2*y1)

常数项: C = x1^2-2*x1*C1+C1^2+y1^2-R^2

一元二次方程转化为:

A*b^2 + B*b + C = 0 ----(6)式

解得b = (-B + sqrt(B*B - 4 * A*C)) / (2 * A); (或b = (-B - sqrt(B*B - 4 * A*C)) / (2 * A))

代入(5)式得a的值;

void CircleCenter(double x1,double y1,double x2,double y2,double R,double &x,double &y) { double c1 = (x2*x2 - x1*x1 + y2*y2 - y1*y1) / (2 *(x2 - x1)); double c2 = (y2 - y1) / (x2 - x1); //斜率 double A = (c2*c2 + 1); double B = (2 * x1*c2 - 2 * c1*c2 - 2 * y1); double C = x1*x1 - 2 * x1*c1 + c1*c1 + y1*y1 - R*R; y = (-B + sqrt(B*B - 4 * A*C)) / (2 * A); x = c1 - c2 * y; }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有