Sind zwei Rechtecke überlappen?

Studierte ich dieses Frage, und folgte die Antwort zu implementieren eine eigene version in Java. Ich denke, es ist nah... aber immer noch falsch. Könnten Sie mir bitte einen Vorschlag machen, der Fehler???

Den vollständigen Quellcode finden Sie hier:

//Determine if it is inside
boolean isInside = ((r1x1 >= r2x1) && (r1x2 >= r2x2) 
        && (r1y1 >= r2y1) && (r1y2 <= r2y2));

//Determine if it is overlap
boolean isOverLap = (!(r1x1 >= r2x2) && !(r1x2 <= r2x2)
        && !(r1y2 >= r2y1) && !(r1y1 <= r2y2));

//Determine if it is NOT overlap
boolean isNotOverLap = ((r1x1 >= r2x2) || (r1x2 <= r2x2)
        || (r1y2 >= r2y1) || (r1y1 <= r2y2));

Laut dem Buch, das ich studiere, ist dies sein soll: r2 overlap r1. Aber mein Programm die Ausgabe r2 does not overlap r1.

Enter the r1's center x, y coordinates, width and height
1 2 3 5.5
Enter the r2's center x, y coordinates, width and height
3 4 4.5 5
Rectangle 1: (-0.50, 4.75), (2.50, -0.75)
Rectangle 2: (0.75, 6.50), (5.25, 1.50)
r2 does not overlap r1
Was ist falsch mit boolean isNotOverLap = !isOverLap? 😛
Ist das ein Rätsel? Was für Fehler?
Titel editiert: "Is you is, or is you ain't, my constituency?"

InformationsquelleAutor George | 2013-06-30

Schreibe einen Kommentar