Извиняюсь, если это считается повторным вопросом, но ответы, которые я видел здесь, слишком сложны для моих нужд.
Мне просто нужно выяснить, пересекает ли отрезок прямой окружность. Мне не нужно находить расстояние до линии от центра круга, мне не нужно искать точки пересечения.
Причина, по которой мне нужно что-то простое, заключается в том, что мне нужно кодировать это в SQL, и я не могу вызвать внешние библиотеки, и мне нужно написать эту формулу в предложении WHERE ... в основном это должно быть сделано в одном заявление, что я могу подключить значения к.
Предполагая 2 точки A (Ax, Ay) и B (Bx, By) для описания отрезка, и окружность с центральной точкой C (Cx, Cy) и радиусом R, формула, которую я сейчас использую:
(R R ((Ax-Bx) (Ax-Bx) + (Ay-By) (Ay-By)))
- (((Ax-Cx) (By-Cy)) - ((Bx-Cx) (Ay-Cy)))> 0
Эта формула взята из текста ссылки и основана на 0,0-центрированном круге.
Причина, по которой я публикую сообщения, заключается в том, что я получаю странные результаты, и мне было интересно, сделал ли я что-то глупое. (