AB ve CD'nin iki ortak satır satırı verildiğinde, bunların çakışıp çakışmadığını nasıl bulabilirim? Çakışmanın başlangıç ve bitiş noktalarını nasıl bulurum?Eşdoğrusal çizgiler arasında çakışma bulun
Kullanmakta olduğum yaklaşım aşağıdadır. Ben ilk A < B ve C < D. Şimdi
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
}
}
, daha basit bir çözüm bu orada yapmak değil sağlamakla ben?
Güncelleme: Başka bir yol var ... her iki parçanın uzunluklarının toplamını en dıştaki noktalar arasındaki mesafeyle karşılaştırın. Eğer ikincisi daha az ise, örtüşme var.
Parlak! SO'ya hoş geldiniz! –
Teşekkür ederim. Eğlenceli. – Edoot