Дано: Два отрезка на плоскости заданы координатами своих концов.
Определить имеют ли ети отрезки общие, НЕ НАХОДЯ ТОЧКУ ПЕРЕСЕЧЕНИЯ (погрешностями пренебречь)
буду очень благодарен, если поможете
заранее спасибо
Отрезки имеют общие точки, если он НЕ параллельны, тоесть имеют разный угол наклона k к оси ОХ.
Получай уравнения прямых по точкам, а из них уже получай угловые коэфф-ты и сравнивай их.
ты немного не понял klem4
это НЕ неограниченные прямые, а отрезки, которые могут располгаться в разных, координатных осях
так что тема с коэфициентом непрокатит (
вот пример того как два отрезка параллельны и не пересекаются
Эскизы прикрепленных изображений
Программу за вас писать не буду.
Зная 2 точки на отрезке, нетрудно написать уравнение прямой, содержащей его, в виде Ax+By+C=0 (если отрезок-точка, то получаем уравнение 0=0). В формуле что-то типа A=y1-y2, B=x2-x1, C=x1*y2-x2*y1. После этого в левую часть подставляете концы другого отрезка (получив 2 числа). Если получился одинаковый знак, то отрезки не пересекаются. Если знаки разные - то значит отрезок 2 пересекает прямую, содержащую отрезок 1. Если один из знаков нулевой - то тоже. Если оба знака нулевые - то это отдельный случай, когда оба отрезка расположены на одной прямой.
Потом аналогично делается для другого отрезка. Исходя из полученных ответов определить, пересекаются ли отрезки можно во всех случаях, кроме одного: когда отрезки на одной прямой. В последнем случае надо спроецировать отрезки на ось икс ,если отрезки не параллельны оси игрик, или на ось игрик в противном случае (отбросить одну из координат). После этого уже всё что надо легко узнаётся.
Большое спасибо, за ответ !
Только я не совсем понял :
пусть углы одинаковые, но ведь отрезки не имеют общих точек, не так ли ?
всем спасибо за ответы
TarasBer, а можно по-подробней с последним случаем, где лежат на одной прямой???