一:算法介绍
给定一个圆的中心坐标和它的半径,以及一个直线方程,那么直线与圆的交点怎么求?这里我们不再使用求解二元方程组方法,而是从几何角度来解决问题,这种方法与代数方法相比,更直观,更准确。
1. 在不失一般性的情况下,我们假设圆的中心位于坐标系原点,如果不是,我们看可以将其移到原点,并调整直线方程(加上一个偏移常量)。所以我们得到了一个中心位于原点(0,0)的,半径为 r 的圆。并且直线方程是:Ax + By + C = 0。 然后让我们找到直线上最接近原点的点(x0,y0),首先我们线计算出它离原点的距离 d0:
2. 由于向量(A,B)垂直于直线 Ax + By + C = 0,我们可以认为(A,B)是一个单位向量,并且上一步已经计算出了(x0,y0)到原点的距离,所以我们只需将(A,B)缩放一下(乘以到原点的距离),即可得到(x0,y0):