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
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.
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
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
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.
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.
Powered by vBulletin® Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.