Wie rotiere ich ein Objekt in Java 3D?

Ich habe einen Cone, den ich in Java 3D mit folgendem Code gezeichnet habe:

Cone cone = new Cone(2f, 3f);

Transform3D t3d = new Transform3D();
TransformGroup coneTransform = new TransformGroup(t3d);
coneTransform.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);

t3d.setTranslation(new Vector3f(0f,0f,0f);
coneTransform.setTransform(t3d);
coneTransform.addChild(cone);

this.addChild(coneTransform);

Angenommen, ich habe den Kegel an Punkt (1,1,1) und möchte, dass die Spitze des Kegels auf eine gedachte Linie zeigt, die durch (0,0,0) und (1,1,1) verläuft ... wie Darf ich das machen?

Hier ist ein Beispiel für das, was ich versucht habe:

Transform3D t3d = new Transform3D();  

Vector3f direction = new Vector3f(1,2,1);    

final double angleX = direction.angle(new Vector3f(1,0,0));
final double angleY = direction.angle(new Vector3f(0,1,0));
final double angleZ = direction.angle(new Vector3f(0,0,1));

t3d.rotX(angleX);
t3d.rotY(angleY);
t3d.rotZ(angleZ);

t3d.setTranslation(direction);

coneTransform.setTransform(t3d);

Vielen Dank im Voraus für alle Hilfe!

Antworten auf die Frage(5)

Ihre Antwort auf die Frage