PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Überschneidungsrechteck zweier Rechtecke ermitteln



Toastbrot
22.06.2010, 19:08
Nabend,

ich habe grad anscheinend ein kleines logisches Problem. Ich habe 2 Rechtecke auf einer 2-dimensionalen Fläche gegeben. Von diesen Rechtecken kenne ich jeweils die Koordinaten, sowie die Seitenlängen.

Die Rechtecke überschneiden sich jetzt zum Beispiel so:


http://www.imagebanana.com/img/j32vn7h/beispiel.png

Gegeben sind Rechteck 1 und 2. Gesucht wird Koordinate und die Seitenlängen von Rechteck 3.

Frage: Wie kann ich dieses Rechteck in jedem Fall ermitteln?

Ach übrigens, die Koordinate gibt die obere, linke Ecke des Rechtecks an

MfG

Apex
22.06.2010, 19:39
Und sowas um die Uhrzeit, ist ja schlimm :D

Da war irgendwas mit Breiten und Flächen. Ich glaube am einfachsten ist es, wenn du die Koordinaten verrechnest. Ich mein du hast die Koordinaten gegeben, die musste irgendwie minus bzw + verrechnen und dann kriegste das in der Mitte raus.

Hatte so ein PRoblem damals schon in Google gesehen, find dne Link aber nicht mehr.

sn0w
22.06.2010, 19:41
Das sollte dir helfen :D Hab mir extra Mühe gegeben XD
http://www.abload.de/img/squarel508.png
A2 haste ja gegeben => Seitenlängen dazu => Alle Koordinaten.

MfG

100
22.06.2010, 19:44
Wenigstens noch meine Überlegung:
http://www.imagebanana.com/img/4x52a0g0/beispiel.png

Wobei da noch was fehlt falls y2 nicht 0 ist.. glaube ich :D (y1-y2)

Toastbrot
22.06.2010, 19:48
Naja eigentlich bräuchte ich eine allgemeine Formel um das Rechteck zu bestimmten.

Es gibt ja insgesamt vier Fälle, die alle irgendwie behandelt werden müssen.
Ist P(X1 | Y1) die Koordinate des Rechteck I und Q(X2 | Y2) die von Rechteck II, gibt es die Fälle

X1 > X2 && Y1 > Y2
X1 < X2 && Y1 > Y2
X1 > X2 && Y1 < Y2
X1 < X2 && Y1 < Y2

(<= und >= jetzt mal außen vor gelassen)

Ich suche nicht unbedingt nach einer allgemeinen Formel (die wäre aber super), sondern vielleicht auch für jeden Fall eine. Das ganze soll später von einem Programm automatisiert werden.

Ich mach mal schnell ein Bild aller vier Fälle um das ein bisschen zu verdeutlichen, editier dann meinen Beitrag

So hier das Bild:

http://www.imagebanana.com/img/cchd7rrz/beispiel2.png

Man kann das Problem denke ich auf 2 Fälle reduzieren, indem man die Rechtecke ggf. vertauscht

sn0w
22.06.2010, 20:04
If X1 > X2 && Y1 > Y2 => P (X1-X2/Y1-Y2)
If X1 < X2 && Y1 > Y2 => P (X2-X1/Y1-Y2)
If X1 > X2 && Y1 < Y2 => P (X1-X2/Y2-Y1)
If X1 < X2 && Y1 < Y2 => P (X2-X1/Y2-Y1)

MfG

Toastbrot
22.06.2010, 20:16
@Dragonfighter21: Deine Methode gibt mir nicht die Punkte, sondern die Seitenlängen. Oder sehe ich das falsch? Das ist ja nur ein Teilproblem. Hilft mir aber glaub ich weiter.

sn0w
22.06.2010, 20:42
Doch auch die Punkte, oder spinn ich jetzt total?^^
Wenn du dann X1 + X1-X2 (nur wenn X1 > X2)
und Y1 - Y1-Y2 (nur wenn X1 > X2 && Y1 > Y2) haste doch auch den Punkt, oder?^^

MfG

T0x1cBaSs
22.06.2010, 20:51
Dürfte durch Vektorsubtraktion die Punkte sein. Die Seitenlänge erhältst du, wenn man den Betrag von 2 Koordinaten bildet. => Seitenlänge von XY = |XY| sprich Vektor XY = sqrt(X²+Y²) und du hast die Seitenlängen.