Bei zwei kollinearen Liniensegmenten AB und CD: Wie finde ich heraus, ob sie sich überlappen? Wie finde ich die Start- und Endpunkte der Überlappung?Überlappung zwischen kollinearen Linien finden
Unten ist der Ansatz, den ich verwende. Ich sicherstellen, dass zuerst ein < B und 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
}
}
Nun ist es nicht eine einfachere Lösung, dies zu tun?
Update: Es gibt einen anderen Weg ... vergleichen Sie die Summe der Längen beider Segmente mit dem Abstand zwischen den äußersten Punkten. Wenn letzteres der kleinere ist, besteht Überlappung.
Brilliant! Willkommen in SO !! –
Danke. Es macht Spaß. – Edoot