У меня есть строка с начальной точкой как P1 (x1, y1) & end Point as P2 (x2, y2). Эта линия находится от центра круга. Радиус круга равен r. Нужно простое уравнение для определения точки пересечения линии круга?Нужно пересечь точку для линии, идущей из центра круга?
ответ
Предполагая, что P1 является центром окружности, сначала получить наклон линии, затем следуют его от P1 к расстоянию г в этом направлении.
phi = atan2(y2-y1, x2-x1)
x = x1 + r * cos(phi)
y = y1 + r * sin(phi)
Уравнение для круга есть (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?
Спасибо за быстрый ответ – balusu
Спасибо за быстрый ответ. – balusu