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: