直线和圆的交点

Line and circle intersection points

我有一个圆心在 (0, 0) 的圆和一条由方程 y = kx 给出的直线。我需要推导出一个公式来找到这条线与圆的交点。我知道显示的方程式 at the screenshot,但我在将直线方程式从 y = kx 形式转换为 Ax + By + C = 0

形式时遇到问题

对于以 (0,0) 为中心的半径 R 的圆,我们可以很容易地找到两个具有 y=kx:

形式的线的交点
fi = atan(k)
x1 = R * cos(fi)
y1 = R * sin(fi)
x2 = - R * cos(fi)
y2 = - R * sin(fi)

或者 k 没有触发。函数:

coeff = R / sqrt(1 + k^2)
x1 = coeff * k
y1 = coeff
x2 = - coeff * k
y2 = - coeff

第一种方法是指y = kx+b中的k系数对应直线与OX轴夹角正切的规则

第二种方式——线圆方程组的求解

y = kx
y^2 + x^2 = R^2`

转换很简单。

y = k.x <-> -k.x + 1.y + 0 = 0