General > German corner

Berechnung Rotation

(1/3) > >>

Telix:
Gibt es eine Methode die ein Objec3D zu einem Punkt dreht?

Also sowas wie LookAt(SimpleVector)?

Wenn nicht, wie kann man das selber berechnen?

Wenn meine Figur nun nach rechts schaut und sie soll nach oben laufen.
Wie kann ich die Drehung berechnen?


Bzw. wie kann ich am besten berechnen, dass die Figur nach "oben" schauen soll.

ich hab als Beispiel X,Y vom Start und X,Y vom Ziel.
Wie bekomme ich nun raus wie sich die Figur drehen muss?

Danke vielmals!


EgonOlsen:
Du könntest z.B. das hier benutzen: http://www.jpct.net/jpct-ae/doc/com/threed/jpct/SimpleVector.html#getRotationMatrix(com.threed.jpct.Matrix, com.threed.jpct.SimpleVector)

Die zu füllende Matrix kann die Rotationsmatrix des Objektes sein oder eine andere, wenn du den Übergang weicher ablaufen lassen willst.

Telix:
Kannst du mir da ein wenig mehr erklären?
Ich bin nicht so der Pro der mit ner Matrix umgehen kann.

Mir fehlt grade das Verständnis wie ich von 2 Vectoren den Winkel bekommen kann.
Weil die Vectoren haben ja keine Ausrichtung. Es sind doch nur Punkte?

Wäre super lieb wenn du mir da ein wenig helfen könntest :)
Danke!

EgonOlsen:
Also das kommt nun darauf an, was genau du tun willst. Das ist mir nicht 100% klar. Du hast eine Figur, die steht "irgendwie" gedreht? In diesem Fall vermutlich nur um die y-Achse? Und du willst jetzt den Winkel zwischen dieser Drehrichtung und...oben? Also quasi den Winkel, um den die Figur gedreht wurde? Wenn es das ist, dann geht sowas hier:


--- Code: ---public static float deriveAngle(Matrix mat) {
float y = (float) Math.asin(Math.min(1f, Math.max(-1f, -mat.get(0, 2))));
float zd = mat.getZAxis().z;
if (zd < 0) {
     y = (float) (Math.PI / 2f + (Math.PI / 2f - y));
}
return y;
}

--- End code ---

Wenn es das nicht ist, erklär nochmal genau, was du meinst.

Telix:
Also ich habe meine Figur die schaut defaultmäßig nach rechts.

nun steht se auf dem Feld 7,7 (z,x) nun möchte ich, dass sie auf das feld 7,6 schaut. (also Links)

Wie bekomme ich nun raus, wie weit ich die Figur drehen muss, dass sie auf Feld 7,6 schaut?

Ist es nun die Methode die du geschrieben hast?

Navigation

[0] Message Index

[#] Next page

Go to full version