Überprüfung, ob sich Rechtecke schneiden
Hallo
Ich bin gerade auf der Suche nach einer schnellen Lösung für folgendes Problem: Ich habe ein ruhendes Rechteck, dessen Kanten parallel zu den Achsen liegen. Ein anderes Rechteck liegt irgendwie gedreht im Raum. Die Frage ist jetzt, ob sie sich beühren. Eine Möglichkeit wäre natürlich alle Kanten des einen mit allen Kanten des anderen zu schneiden und auf schnittpunkt im richtigen Bereich zu testen. Nur ist das etwas aufwändig. Später soll das ganze in einem Spiel laufen, von da her Suche ich besonders nach einer perfomanten Lösung. Weiss da jemand etwas schnelleres? Nikolas |
Re: Überprüfung, ob sich Rechtecke schneiden
Game mit OpenGL bzw. DirectX? Wenn ja dann sollte es da passende Funktionen geben. Vierecke sind zwei aneinanderliegende Dreiecke. Dafuer gibt es bestimmt Schnitttestfunktionen.
|
Re: Überprüfung, ob sich Rechtecke schneiden
Nein, Game mit C++ :)
Alles reine Handarbeit :mrgreen: |
Re: Überprüfung, ob sich Rechtecke schneiden
Hallo,
projiziere die Rechtecke zuerst auf eine 2-dimensionale ebene (z.B. indem du sie "von oben" ansiehst, du kannst dann einfach die z-koords untern tisch fallen lassen). Benutze dann IntersectRect. Wenn du damit keine Kollision erkennst, gibts auch keine. Wenn doch, musst du das ganze nochmal 3-dimensional prüfen, bzw. prüfen, ob es in einer der anderen ebenen (yz und xz) auch kollisionen gibt (bei einem rechteck mit höhe = 1 bzw. 0 kannst du dann davon ausgehen, dass eine kollision genau dann stattfindet, wenn du in allen drei ebenen eine erkennst, glaube ich... :gruebel: ) |
Re: Überprüfung, ob sich Rechtecke schneiden
Zitat:
@Nikolas oder Admin: bitte Thema ändern nach: Überprüfung, ob Quader sich schneiden. |
Re: Überprüfung, ob sich Rechtecke schneiden
...trotzdem funktioniert mein ansatz. und ich denke, Nikolas spricht von Rechtecken.
|
Re: Überprüfung, ob sich Rechtecke schneiden
Zitat:
"Gedreht im Raum" deutet für mich auf 3 Dimensionen hin. Er soll sich halt erklären, ob es 2 oder 3 Dimensionen sind. |
Re: Überprüfung, ob sich Rechtecke schneiden
Zitat:
|
Re: Überprüfung, ob sich Rechtecke schneiden
auch ein rechteck kann im raum liegen, auch "gedreht"...
|
Re: Überprüfung, ob sich Rechtecke schneiden
Es geht um den 2-Dimensionalen Raum, in dem sich mein Spiel bewegt. Entschuldigt bitte die Ungenauigkeit. (Wobei: Wer hat schon mal in einem Spiel Rechtecke in einem 3D-Raum gesehen, die geschnitten werden müssen? Klingt etwas nach Autoscooter mit fliegenden Teppichen :) )
Das mit dem Boundingcircle hört sich gut an. Als Vorprüfung werde ich das einführen. Eine schnelle Lösung dahinter wär aber auch gut |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz