Хорошо, я не буду давать вам код, но поскольку вы отметили этот алгоритм , я не думаю, что это будет иметь для вас значение. Во-первых, вы должны получить вектор, перпендикулярный линии.
У вас будет неизвестная переменная в y = ax + c
(c
будет неизвестно) Чтобы решить эту проблему, вычислите ее значение, когда линия проходит через центр круга.
То есть, подключите местоположение центра круга к линейному уравнению и решите для c
. Затем вычислите точку пересечения исходной линии и ее нормали.
Это даст вам ближайшую точку на линии к кругу. Вычислите расстояние между этой точкой и центром окружности (используя величину вектора). Если это меньше радиуса круга - вуаля, мы имеем пересечение!