Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Überlappung bei Rechtecken (https://www.delphipraxis.net/67370-ueberlappung-bei-rechtecken.html)

JasonDX 14. Apr 2006 01:45

Re: Überlappung bei Rechtecken
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also: damit mein Post oben nicht fuer immer ein kryptisches Geheimnis bleibt erklaer ich mal, wie ich meine Loesung geschrieben habe:
Betrachten wir mal nur die erste der 2 Dimensionen, die unsere zwei Rechtecke (A und B) haben, und gehen mal davon aus, dass sie sich y-maessig schneiden.
Wie ueberpruefe ich aber, ob sich die Rechtecke nur in Beachtung der X-Achse schneiden? ganz einfach, ich messe deren Abstand zwischen den Mittelpunkten der 2 Rechtecke. Diesen Abstand nennen wir mal d.
Wenn man sich nun die Rechtecke anguckt, fragt man sich: Wie gross darf der Abstand maximal sein, dass sich die Rechtecke noch schneiden?
Ganz einfach:
Sei a die Ausdehnung des ersten Rechtecks an der X-Achse, und b die des zweiten Rechtecks, so muss d < a/2 + b/2 sein. Wenn man sich das aufzeichnet, faellt es relativ schnell auf ;)
Wenn ich dies nun nicht nur fuer die X-, sondern auch fuer die Y-Achse mache, und alle anderen Dimensionen, die ich hab, so erhalte ich am Ende viele boolsche Werte:
A&B schneiden sich bezueglich der X-Achse
A&B schneiden sich nicht bezueglich der Y-Achse
[...]

Die Rechtecke schneiden sich nur, wenn sie sich in Bezug zu jeden einzelnen Achsen ueberlagern. Also: Die erhaltenen boolschen Werte mit & verknuepfen und als Ergebnis zurueckgeben, und schon hammas :)

Das sollte als Gedankenanstoss reichen, und es sollte kein allzugrosses Problem mehr sein, dieses Prinzip in halbwegs lesbaren Java-Code zu implementieren ;)

greetz
Mike

Luckie 14. Apr 2006 03:02

Re: Überlappung bei Rechtecken
 
Zitat:

Zitat von 3_of_8
Java. Nicht Delphi.

Und wo erfährt man, dass es dir um Java geht? :roll: Hellsehen kann hier wahrscheinlich noch keiner. :wall:

Hansa 14. Apr 2006 04:20

Re: Überlappung bei Rechtecken
 
Zitat:

Zitat von 3_of_8
...aber ich weiß nicht, was dadurch leichter wird, wenn ich Kanten und nicht Ecken betrachte...

Du reduzierst damit ein 2-dimensionales Problem auf 1 Dimension. Und das kann ein gewaltiger Unterschied sein. Die Frage gehört sowieso eher in die 6. Klasse, als auf die Uni.

OT : Mann, mann. Sieht so die "Bekämpfung" der Pisa-Studie aus ? :shock: Sechstklässler werden zu Studenten "befördert", die das machen müssen, was sie in der Schule sowieso nicht kapiert haben ? :lol:

3_of_8 14. Apr 2006 12:08

Re: Überlappung bei Rechtecken
 
Also, @Luckie: Es ist vollkommen irrelevant mit welcher Sprache, ich will ja keine fertige Funktion verwenden, sondern selber eine schreiben, daher auch "Denkanstoß" und "Pseudocode".

@Hansa: Ich kann natürlich eine einzelne Kante betrachten. Ich hab bloß nicht so ganz kapiert, was mir das im gesamten hilft. Denn ich hab den Beitrag so verstanden, dass ich eine Kante und nicht eine Ecke vergleichen soll. Und das kam mir irgendwie komisch vor. Jetzt kapier ichs, das kommt dann allerdings ziemlich genau auf alcaeus' Code raus. Und, ich bin ein Neuntklässler und sicherlich nicht deshalb dafür ausgewählt worden, weil ich so furchtbar dumm bin. Bemerkungen dieser Art finde ich ungerechtfertigt.

Hawkeye219 14. Apr 2006 12:23

Re: Überlappung bei Rechtecken
 
Ok, noch ein Denkanstoß:
Versuche zunächst die Koordinaten eines (möglichen) Schnittrechtecks zu bestimmen. Vielleicht beantwortet das ja auch die Frage nach der Existenz einer Überdeckung...

Gruß Hawkeye


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:03 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz