我的问题是关于计算2D空间中的点坐标。 我有两个圆圈 - 外部和内部,它们位于它们之间(内部位于外部的中间)。
我所知道的: - 两个圆圈的半径(R1,R2) - 空间中随机点(x)的2D坐标始终位于内圆之外
我想知道的是什么: - 位于外圆上的两个点(y,z)的二维坐标,位于随机点(x)的两条切线之后
答案 0 :(得分:2)
让我们的圆'中心是坐标原点(0,0)
(将其他坐标移动到真正的中心坐标),随机点为P
,大圆点为Q
,小半径为{{ 1}},较大的一个是r
。
我们可以建立一个从中心到切点的距离和交点的方程组,但它需要求解具有相当长系数的四次方程。
因此,首先找到从点P到具有三角函数的小圆的切线方程:
R
现在两个切点都能解决像
这样的二次方程Dist = Sqrt(px^2+py^2)
tan_angle = ArcSin(r / Dist)
rot_angle = ArcTan2(py, px)
ta1 = rot_angle - tan_angle
ta2 = rot_angle + tan_angle
and tangent points are
t1x = r * sin(ta1)
t1y = - r * cos(ta1)
t2x = - r * sin(ta2)
t2y = r * cos(ta2)
对于未知参数s,得到两个解(px + s * (t1x - px))^2 + (py + s * (t1y - py))^2 = R^2
2并找到交点
s1,s
请注意,解决方案由四个点组成 - 两个切线,每个切线有两个交点。