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:
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:
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: