Как найти точку пересечения линий 1 и lin2, если обе линии определены через x, y, alpha, где x, y - координаты точки на линии, а альфа - это угол между линией и x = const?Формула для нахождения точки пересечения двух линий
Я пробовал применить теорему синуса, но он дает два ответа (треугольники могут быть построены по обеим сторонам линии). Я могу проверить, какая точка формирует правильный уклон с одной из точек, но это уродливо.
Я могу переключиться на представление y = ax + b, но тогда у меня есть особые случаи, о которых я должен беспокоиться. Вертикальные и горизонтальные линии должны быть по-разному, чтобы избежать деления на ноль в случаях 1/sin (альфа) и 1/cos (альфа).
Я не ищу реализацию на определенном языке, просто формулу.
Эти вопросы не актуальны, поскольку они касаются конечных сегментов линии, а не линий.
Given two points and two vectors, find point of intersection
How do you detect where two line segments intersect?
Есть ли способ, чтобы избежать проверки для 'Если (aplha1! = Пи/2)'? Углы гарантированно будут отличаться, но один из них может быть pi/2, вызывающий ошибку div_zero для tan (pi/2). – Stepan
Благодарим вас за предупреждение об этом специальном случае, я добавил свой ответ, чтобы включить его. – MarianD