<基础数学> 三个点生成一个圆

三个点生成一个圆

如果给定三个点的坐标,我们可以通过这三个点来确定一个圆。以下是一种求解方法:

假设给定的三个点分别为 A ( x 1 , y 1 ) 、 B ( x 2 , y 2 ) 、 C ( x 3 , y 3 ) A(x_1, y_1)、B(x_2, y_2)、C(x_3, y_3) A(x1,y1)B(x2,y2)C(x3,y3)

1、计算AB与AC的中垂线的斜率,中垂线与AB的垂直斜率的负倒数相等。设AB中点为M,中垂线的斜率为 k 1 k_1 k1,计算方法: k 1 = − 1 / ( ( y 2 − y 1 ) / ( x 2 − x 1 ) ) k_1 = -1 / ((y_2-y_1)/(x_2-x_1)) k1=1/((y2y1)/(x2x1))

2、计算AC的中垂线与BC的中垂线的交点,即圆心。
设AC中点为N,BC中点为O,圆心坐标为 H ( x h , y h ) H(x_h, y_h) H(xh,yh)

  • 求解BC中垂线的斜率 k 2 k_2 k2 k 2 = − 1 / ( ( y 3 − y 2 ) / ( x 3 − x 2 ) ) k_2 = -1 / ((y_3-y_2)/(x_3-x_2)) k2=1/((y3y2)/(x3x2))
  • 求解BC中点O的坐标: o x = ( x 2 + x 3 ) / 2 , o y = ( y 2 + y 3 ) / 2 o_x = (x_2 + x_3) / 2,o_y = (y_2 + y_3)/2 ox=(x2+x3)/2oy=(y2+y3)/2
  • 代入直线的一般式方程: y = k 2 ∗ ( x − o x ) + o y y = k_2 * (x - o_x) + o_y y=k2(xox)+oy,与中垂线的方程联立,求解得到交点 ( x h , y h ) (x_h, y_h) (xh,yh)
    k 1 ∗ ( x h − ( x 1 + x 2 ) / 2 ) + ( y 1 + y 2 ) / 2 = k 2 ∗ ( x h − ( x 2 + x 3 ) / 2 ) + ( y 2 + y 3 ) / 2 k_1 * (x_h - (x_1 + x_2) / 2) + (y_1 + y_2) / 2 = k_2 * (x_h - (x_2 + x_3) / 2) + (y_2 + y_3) / 2 k1(xh(x1+x2)/2)+(y1+y2)/2=k2(xh(x2+x3)/2)+(y2+y3)/2
    化简后求解 x h x_h xh,带入方程求解 y h y_h yh,即得到圆心坐标。

3、最后,计算圆的半径r。将圆心和任意一个点的距离作为半径即可。

  • 圆心坐标为 H ( x h , y h ) H(x_h, y_h) H(xh,yh),任意点为 A ( x 1 , y 1 ) A(x_1, y_1) A(x1,y1)
  • 计算距离的平方: r 2 = ( x 1 − x h ) 2 + ( y 1 − y h ) 2 r^2 = (x_1-x_h)^2 + (y_1-y_h)^2 r2=(x1xh)2+(y1yh)2
  • 取平方根即得半径: r = s q r t ( r 2 ) r = sqrt(r^2) r=sqrt(r2)

这样,我们就通过给定的三个点求解出了一个圆的圆心坐标和半径。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值