我有两个同心圆和两条从外圆上的(单个)点出发的切线。我想确定切线的延伸与外圆相交的位置。如果重要的话,这是用 JS 编写的,在画布上绘图。
我知道 A、R、r、Tb、Tc 的坐标和/或值,[当然还有圆心,我们可以假设它位于 (0, 0)]。我需要找到“B”和“C”的坐标。
欢迎任何帮助/建议。
首先找到切点
T
(TB
和TC
)。到切点的小圆半径矢量垂直于切线,因此这些矢量的标量积为零。向量的长度为r
,所以我们有方程组:
Tx*(Tx-Ax)+Ty*(Ty-Ay)=0 [1]
Tx^2+Ty^2 = r^2 [2]
对其进行变换,我们得到未知
Tx
坐标的二次方程
Tx^2-Tx*Ax+Ty^2-TyAy=0
r*r = Tx*Ax+TyAy
Ty = (r^2 - Tx*Ax) / Ay [3]
Tx^2*Ay^2+(r^2 - Tx*Ax)^2 = r^2*Ay^2
Tx^2*(Ay^2+Ax^2) + Tx*(-2*r^2*Ax) + (r^4-r^2*Ay^2) = 0
解决这个问题,我们得到两个(一般情况下)坐标
TBx, TCx
的解,然后如果 Ay!=0
则从 [3] 计算 Y 坐标,否则从 [2] 计算 Y 坐标。
A-B
向量只是A-TB
向量的两倍,所以
Bx = Ax + 2*(TBx-Ax) = 2*TBx - Ax
By = Ay + 2*(TCy-Ay) = 2*TBy - Ay
与
C
点类似