lG
Ist rot. Box in rot. Box
Ist rot. Box in rot. Box
Kleines Geometrie Debakel. Eine Funktion zum prüfen ob 2 rotierte Rechtecke überlappen. Gegeben ist also 2xWinkel+X1+Y1+X2+Y2.
lG
lG
- NicTheQuick
- Ein Admin
- Beiträge: 8838
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Ist rot. Box in rot. Box
X1, Y1, X2, Y2 gibt es auch doppelt? Sind das schon die gedrehten Koordinaten oder werden die erst noch gedreht anhand des Winkels? Also ist Breite = X2 - X1 und Höhe = Y2 - Y1?
- man-in-black
- Beiträge: 362
- Registriert: 21.08.2006 17:39
Re: Ist rot. Box in rot. Box
Ich geh mal davon aus, dass das die "Mittelpunkte" und nicht irgendwelche Randpunkte sind. Damit dürfte sich das
"schon gedreht?" geklärt haben (sofern ich richtig liege^^)
Vorüberprüfung:
Abstand < Diagonale1/2+Diagonale2/2
Ideen/Ansätze für die Hauptüberprüfung:
Durchlaufe alle Kanten des Rechteckes1 und gucke, wie viele Eckpunkte des anderen Vierecks links oder rechts davon liegen.
(Natürlich etwas komplizierter umgesetzt
). Da du die Drehung kennst, weist du auch, wo deine Eckpunkte jetzt liegen.
Greif dir einen und gehen in Kantenrichtung+Drehung. Sollte ein Punkt 4x "Innen" liegen, wirds kritisch^^
(ABER auf beide Rechtecke anwenden!)
Oder du greifst dir wieder nen Eckpunkt und rechnest die Winkel zwischen Verbindungsgeraden und Koordinatenachse aus. Da du
bei jedem Eckpunkt eine Art "verbotenen Bereich" von pi/2 (also den Teil, der Innen liegt) hast, ist diese Überprüfung vllt noch schneller zu erledigen, da zwei Punkte reichen sollten. Wenn wenigstens ein Eckpunkt 4 Eckpunkte des anderen Quadrates NICHT im "verbotenen Bereich" hat, dann kollidieren sie nicht.
Hab noch so schöne Ideen im Kopf, aber keine Zeit mehr
mib
"schon gedreht?" geklärt haben (sofern ich richtig liege^^)
Vorüberprüfung:
Abstand < Diagonale1/2+Diagonale2/2
Ideen/Ansätze für die Hauptüberprüfung:
Durchlaufe alle Kanten des Rechteckes1 und gucke, wie viele Eckpunkte des anderen Vierecks links oder rechts davon liegen.
(Natürlich etwas komplizierter umgesetzt
Greif dir einen und gehen in Kantenrichtung+Drehung. Sollte ein Punkt 4x "Innen" liegen, wirds kritisch^^
(ABER auf beide Rechtecke anwenden!)
Oder du greifst dir wieder nen Eckpunkt und rechnest die Winkel zwischen Verbindungsgeraden und Koordinatenachse aus. Da du
bei jedem Eckpunkt eine Art "verbotenen Bereich" von pi/2 (also den Teil, der Innen liegt) hast, ist diese Überprüfung vllt noch schneller zu erledigen, da zwei Punkte reichen sollten. Wenn wenigstens ein Eckpunkt 4 Eckpunkte des anderen Quadrates NICHT im "verbotenen Bereich" hat, dann kollidieren sie nicht.
Hab noch so schöne Ideen im Kopf, aber keine Zeit mehr
mib
- NicTheQuick
- Ein Admin
- Beiträge: 8838
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Ist rot. Box in rot. Box
Wenn das Mittelpunkte sein sollen, dass weiß man aber immer noch nicht wie breit und hoch die Rechtecke sind.
Re: Ist rot. Box in rot. Box
Sie Dir das mal an:
Wurde mit den Chipmunk4PB Wrapper entwickelt.
http://www.morty-productions.de/icesoft ... wGames.zip
Wurde mit den Chipmunk4PB Wrapper entwickelt.
http://www.morty-productions.de/icesoft ... wGames.zip
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...