RotationInterpolator um die eigene X-Achse

Status
Nicht offen für weitere Antworten.
Hallo,
ich habe ein VRML-Flugobjekt in Java3D geladen und möchte nun die Rotoren (es sind 4) rotieren lassen. (Rotoren zur besseren Unterscheidung nun Propeller genannt ;))

Bild Quadrocopter

Dafür habe ich mit dem Rotationsinterpolator experimentiert, bin aber nicht zu einem richtigen Ergebniss gekommen.
Problem: Die Propeller rotieren um das Flugobjekt-Zentrum, nicht aber um ihre einige Achse. Wie kann ich das Rotationszentrum der Transformgroup auf die Propeller-Achse setzen?

Hier mein Code für den ersten Propeller:
Code:
        TransformGroup rotorA = (TransformGroup) t_root.getChild(5);
        rotorA.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
        rotorA.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
                
        Transform3D rotAxis = new Transform3D(); 

        Alpha rotationAlpha = new Alpha( -1, 3000 );
        RotationInterpolator rotator= new RotationInterpolator(rotationAlpha, rotorA);
        rotator.setTransformAxis(rotAxis);
        
        rotator.setSchedulingBounds(globalBounds); 
        t_root.addChild(rotator);

Wenn es nur ein Propeller wäre, so würde ich den globalen Koordinatenursprung auf die Propeller-Achse verschieben, aber was mache ich bei 4 Propellern? Ich bräuchte nur einen kleinen Anstoss :roll:
 

Marco13

Top Contributor
Vielleicht hilft schon dieses Bild
http://glprogramming.com/red/chapter03.html#name2

Ansonsten: Wenn man Eine Rotationsmatrix R, eine Translationsmatrix T und einen Vertex v hat, dann bewirkt
R * T * v
dass der Vertex ERST verschoben und (der verschobene Vertex) DANN rotiert wird. Mit
T * R * v
wird erst der Vertex um den Ursprung rotiert, und dann (der rotierte Vertex) verschoben.
 
Danke dir, das Bild hat zu mehr Verständnis verholfen.
Ich habe einfach die jeweilige Rotationsachse eines jedes Propellers angepasst:

Rotationsachse gedreht: t3d_rotAxis.rotX(Math.toRadians(270));
Rotationsachsenmittelpunkt auf die Propellerachse verschoben: t3d_rotAxis.setTranslation(new Vector3d(-16.25,-10.25,0));

Folglich hat jede TransformGroup ein eigenes Zentrum, ich dachte immer, die beziehen sich alle auf das selbe, globale Zentrum. Wieder was gelernt ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A RotationInterpolator und Winkel Spiele- und Multimedia-Programmierung 4
V Fragen zum PositionPathInterpolator und RotationInterpolator Spiele- und Multimedia-Programmierung 2
C Eigene Minecraft Enchantements Spiele- und Multimedia-Programmierung 1
C Eine eigene 3d Engine : Shader - aber wie ? Spiele- und Multimedia-Programmierung 2
S Eigene Klasse vec_t - 3 oder 4 Einheiten für x, y, z und w Spiele- und Multimedia-Programmierung 11
J Minecraft Eigene Buttons "bauen" á la MineCraft Spiele- und Multimedia-Programmierung 11
N Eigene Java 3D Engine erstellen. Spiele- und Multimedia-Programmierung 11
M Eigene Renderengine ohne Java3D,etc. Spiele- und Multimedia-Programmierung 19
D JOGL2 eigene mipmaps laden Spiele- und Multimedia-Programmierung 13
Steev Eigene Repaint-Logik Spiele- und Multimedia-Programmierung 17
P eigene Konsole Spiele- und Multimedia-Programmierung 6
M Eigene Strings zeichnen Spiele- und Multimedia-Programmierung 4
M um eigene Achse drehen Spiele- und Multimedia-Programmierung 3
R Eigene geometrische Formen Spiele- und Multimedia-Programmierung 2
B j3d Rotation um mehr als eine Achse Spiele- und Multimedia-Programmierung 9
T [gelöst] Java3D: Unerwünschte Rotation um die 3.Achse vermeiden? Spiele- und Multimedia-Programmierung 3
J [JOGL] Kamera zentrieren über Achse Spiele- und Multimedia-Programmierung 4
C Java3D Rotation um einen Punkt (y-achse) Spiele- und Multimedia-Programmierung 2
J Hilfe: Rotation X und Y Achse (Java3d) Spiele- und Multimedia-Programmierung 12
M 2D - Bild um y-Achse drehen Spiele- und Multimedia-Programmierung 9
S Drehen nur um x-Achse Spiele- und Multimedia-Programmierung 5
S Rotation um verschobene Achse Spiele- und Multimedia-Programmierung 7
A "Textur-Achse" drehen. Spiele- und Multimedia-Programmierung 2
Tr3kk3r Kamera nur um x und y, nicht um z achse rotieren Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen


Oben