Учитывая два коллинеарных отрезка AB и CD, как их найти, если они перекрываются? Как найти начальную и конечную точки перекрытия?Найти совпадение между коллинеарными линиями
Ниже приведен подход, который я использую. Я первым гарантируя, что < B и C < D.
if(pa < pc){
if(pc < pb){
if(pd < pb){
// overlap exists; CD falls entirely within AB
}
else {
// overlap exists; CB is the overlapping segment
}
}
else {
// no overlap exists; AB lies before CD
}
}
else {
if(pa < pd){
if(pb < pd){
// overlap exists; AB lies entirely within CD
}
else {
// overlap exists; AD is the overlapping segment
}
}
else {
// no overlap exists; CD lies before AB
}
}
Теперь, не существует более простое решение, чтобы сделать это?
Обновление: есть другой способ ... сравнить сумму длин обоих сегментов с расстоянием между внешними точками. Если последнее является меньшим, существует перекрытие.
Блестящий! Добро пожаловать в SO !! –
Спасибо. Это весело. – Edoot