Die Funktion war wirklich kein Problem, ich hatte mir nur nicht klargemacht was die Werte der Matrix denn bedeuten.
Noch ein paar Fragen:
1. Würde es genügen eine 2x2 Matrix zu benutzen, wenn ich nur 2D verwende und zudem den vierten Wert nicht benutzen möchte(der ist doch bei einer 4x4 Matrix (also3D) der vierte Wert in jeder Zeile und beschreibt praktisch eine Verschiebung vom Nullpunkt aus oder?) ?
2. Ich möchte eine Kollisionabfrage mit Obb machen und benutze für mein Objekt PositionsVektoren um die Position des Mittelpunkts zu speichern und eine Matrix um die Rotation des Objekts zu speichern.
Wenn ich nun eine BoundingBox um meinen Mittelpunkt berechnen möchte (zum Beispiel mit allen Eckpunkten 1,1 also Entfernung sqrt(2)) , wie stelle ich das dann an?
Ich habe vesucht erst 4 Eckpunkte des Box zu erstellen, die aus dem PositionsVektor und dem Abstand zum ihm bestehen und diese Punkte dann mit der Matrix zu Multiplizieren, aber irgendwie funktioniert das nicht...
1) Ja die 4. Komponenten also die Werte 12-14 geben die Verschiebung an. Die 2x2 Matrix reicht dann allerdings nur aus um die Orientierung und nicht die Verschiebung zu speichern.
2) Zur Berechnung der Bounding Box subtrahierst du am Besten den Mittelpunkt, um den sich das Objekt drehen soll, von allen Punkten und ermittelst dann die minimalen und maximalen x und y Werte. Dann gibt es 4 Punkte (xmin,ymin),(xmax,ymin),(xmin,ymax),(xmax,ymax). Da sind natürlich auch negative Werte bei weil die Koordinaten jetzt relativ zum Drehpunkt/Mittelpunkt des Objektes sind. Um die gedrehte Box zu erhalten multipliziert man diese relative Koordinaten mit der Matrix und addiert dann wieder den Mittelpunkt. Die gedrehte Box hat dann folgende Punkte.
Mitglieder in diesem Forum: 0 Mitglieder und 20 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.