2013-08-02 2 views

ответ

5

Предполагая, что P1 является центром окружности, сначала получить наклон линии, затем следуют его от P1 к расстоянию г в этом направлении.

phi = atan2(y2-y1, x2-x1) 
x = x1 + r * cos(phi) 
y = y1 + r * sin(phi) 
+0

Спасибо за быстрый ответ. – balusu

1

Уравнение для круга есть (xh)^2 - (yk)^2 = r^2, где центр (h, k) (который в конечном итоге будет (0, 0) относительно вашей линии)

Учитывая две точки, вы можете найти наклон линии, теперь вы можете подключить ее к формуле y = m * x + b.

Теперь у вас есть система из двух уравнений, решайте для x или y в одном уравнении, затем подключите это выражение к другому уравнению, и вы найдете числовое значение переменной, для которой вы не решили. Затем вы можете подключить это обратно к уравнению для линии и найти вторую переменную.

Вот общая формула: http://mathworld.wolfram.com/Circle-LineIntersection.html

И некоторые другие ответы: Circle line-segment collision detection algorithm?

+0

Спасибо за быстрый ответ – balusu