You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

已知圆心与半径,求两圆连心线与各自圆周交点的坐标

求解连心线与两圆圆周的交点坐标

嘿,这个问题其实就是向量几何的基础应用,一步步拆解下来超清晰,我给你捋明白具体怎么做:

第一步:明确已知变量

先把所有已知条件用清晰的符号定义好,避免混乱:

  • 圆1的圆心坐标:C₁ = (x₁, y₁),半径:r₁
  • 圆2的圆心坐标:C₂ = (x₂, y₂),半径:r₂

第二步:计算连心线的核心参数

首先算出两圆心之间的方向向量距离

  • 从C₁指向C₂的向量:V = (x₂ - x₁, y₂ - y₁)
  • 两圆心的直线距离(向量V的模长):d = √[(x₂ - x₁)² + (y₂ - y₁)²]

    注意:如果d=0,说明两圆心重合,此时直线与圆的交点要么有无数个(两圆重合),要么没有(半径不等),这种特殊情况咱们暂时先排除,默认d>0。

第三步:得到单位方向向量

把方向向量V转换成单位向量u(长度为1的向量,方便后续按半径长度移动):
u = ( (x₂ - x₁)/d , (y₂ - y₁)/d )

第四步:计算两个交点坐标

现在就可以直接算出每个圆上的目标交点了:

  • 圆1上的交点:从C₁出发,沿着连心线指向C₂的方向移动r₁的距离,坐标为:
    P₁ = (x₁ + r₁*(x₂ - x₁)/d , y₁ + r₁*(y₂ - y₁)/d )
  • 圆2上的交点:从C₂出发,沿着连心线指向C₁的方向移动r₂的距离,坐标为:
    P₂ = (x₂ - r₂*(x₂ - x₁)/d , y₂ - r₂*(y₂ - y₁)/d )

举个实际例子验证

假设:

  • C₁=(0,0),r₁=2
  • C₂=(5,0),r₂=1

计算过程:

  • V=(5-0, 0-0)=(5,0)
  • d=√(5²+0²)=5
  • u=(5/5, 0/5)=(1,0)
  • P₁=(0 + 21, 0 + 20)=(2,0)
  • P₂=(5 - 11, 0 - 10)=(4,0)

你看,这两个点正好在连心线(x轴)上,分别在两个圆的圆周上,完全符合要求~

内容的提问来源于stack exchange,提问作者Sanky

火山引擎 最新活动