-2

我有一条线,起点为 P1(x1, y1),终点为 P2(x2, y2)。这条线来自圆心。圆半径为r。需要一个简单的方程来识别圆线的交点吗?

4

2 回答 2

8

假设 P1 是圆的中心,首先得到直线的斜率,然后从 P1 沿着该方向沿着它到达距离 r。

phi = atan2(y2-y1, x2-x1)
x = x1 + r * cos(phi)
y = y1 + r * sin(phi)
于 2013-08-02T05:51:13.763 回答
1

圆的等式是 (xh)^2 - (yk)^2 = r^2,其中中心是 (h, k)(相对于您的线最终将是 (0, 0))

给定两个点,您可以找到直线的斜率,现在您可以将其代入公式 y = m*x + b。

您现在有一个由两个方程组成的系统,在一个方程中求解 x 或 y,然后将该表达式插入另一个方程,您将找到未求解的变量的数值。然后,您可以将其重新代入方程的一行并找到第二个变量。

这是通用公式: http: //mathworld.wolfram.com/Circle-LineIntersection.html

还有其他一些答案:圆线段碰撞检测算法?

于 2013-08-02T05:51:12.743 回答