Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Алгоритм] Пересечение отрезков в одномерном пространстве


Автор: tishaishii 10.3.2009, 18:50
Что-то под конец рабочего дня в ступор впал.
Два отрезка: A[x1, 0; x2, 0], B[x3, 0; x4, 0].
Узнать, пересекаются ли они....

Автор: GoldFinch 10.3.2009, 19:06
пересекаются =  (x3 принадлежит [x1,x2]) или (x4 принадлежит [x1,x2])

Автор: maxim1000 10.3.2009, 19:08
AB.left=max(A.left,B.left)
AB.right=min(A.right,B.right)

пересекаются тогда и только тогда, когда AB.left<=AB.Right

Добавлено через 1 минуту и 21 секунду
Цитата(GoldFinch @  10.3.2009,  19:06 Найти цитируемый пост)
пересекаются =  (x3 принадлежит [x1,x2]) или (x4 принадлежит [x1,x2]) 

вполне может быть ситуация, когда [x1,x2] вложен в [x3,x4], тогда пересечение, очевидно, есть, но x3 и x4 находятся снаружи [x1,x2]

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)