Java3d und Rotation

Status
Nicht offen für weitere Antworten.

licht400

Bekanntes Mitglied
Hi,
ich möchte ein Objekt rotieren lassen.
ISt ja einfach mit

Objekt.setRotation(new AxisAngele4f(1f,0f,0f,(float)Math.toRadians(45) ));

Mein Problem ist, das ich ein Zylinder drehen möchte und es soll nicht vom Mittelpunkt aus gedreht werden, sondern vom Fuss des Zylinders, sprich einfach kippen lassen um 45 grad.

Komm ich da nur mit einer Matrix hin, wenn ja, wie oder auch noch anders?

Danke schon im voraus.
 

AmunRa

Gesperrter Benutzer
Du musst zuerst den Zylinder in den Ursprung schieben danach drehen und wieder zurückschieben

Das geht mit Matrixmultiplikation.
 

licht400

Bekanntes Mitglied
Mh ich habe das mal so gemacht.
Vor der Drehung habe ich die aktuelle Position in einem Vektor gespeichert..
Habe die Position nach der Drehenung gespeichert und ausgegeben..

v (0.0f,0.0f,0.0f);
n (0.0f,0.25f,0.0f);

Nach der Drehung, z.b. 45 Grad wurde das Objekt auch gedreht, aber auch verschoben...also habe ich dem Objekt einfach den v Vector zugewiesen, da ich dachte, so wäre die Position die alte + aber die Drehung.

Weit gefehlt, Position war die alte, aber ohne Drehung ^^
 

licht400

Bekanntes Mitglied
Das Zurückversetzen funktioniert nicht wirklich. Die Position wird leicht verändert, aber geht nicht auf den Ursprung zurück.

Am Anfang war es ja 0|0|0
Nach der Drehung 0|0.25|0

so, dann hab ich die Position einfach wieder auf 0|0|0 gesetzt, da verändert sich aber nur minimal was an der Position!
 

licht400

Bekanntes Mitglied
so, vll wieder ein Stück.

Vor der Drehung hab ich die Matrix:
1|0|0|0
0|1|0|0.025
0|0|1|0
0|0|0|1

Nach der Drehung habe ich folgende Matrix.

1|0|0|0
0|0.7|0.7|0.025
0|-0.7|0.7|0
0|0|0|1

D.h. das die Verschiebung auf der der 1 (nur die einsen in einer Linie) erfolgt ist..und die Rotation dann an den beiden anderen Stellen? D.h. ich müsste Normalweißer nur die bewegung rückgängig machen, sprich die 1 auf einer Linie wieder herstellen?
 

licht400

Bekanntes Mitglied
Es muss doch möglich sein, die Position zu ermitteln, die der Körper vor der Drehung besitzt hat, um ein Kippen zu realsisieren :)
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben