RotationsInterpolator & setScale()

truesoul

Top Contributor
Hallo miteinander ,

es ist wieder soweit wo ich eure Hilfe benötige :)
Es geht darum das ich ein TransFormGroup nach meinen wünschen Skaliert habe.
Siehe hier:

Java:
...

TransformGroup meinObjekt = new TransformGroup();
Transform3d dreiD = new Transform3D();
dreiD.setScale(0.03);

meinObjekt.add(scene.getSceneGroup());
meinObjekt.setTransform(dreiD);
...
Wurzel.add(meinObjekt);
...

So wunderbar , das funktioniert auch so wie es soll.
Aber jetzt möchte ich auch meinObjekt ein RotationInterpolator anwenden.
Sprich:

Java:
...

TransformGroup meinObjekt = new TransformGroup();
Transform3d dreiD = new Transform3D();
RotationInterpolator rotiere;
dreiD.setScale(0.03);

meinObjekt.add(scene.getSceneGroup());
rotiere = new RotationInterpolator(new Alpha(1000,-1), meinObjekt);
meinObjekt.setTransform(dreiD);
...
Wurzel.add(rotiere);
Wurzel.add(meinObjekt);
...

Die Rotation ist vorhanden aber die Skalierung ist aufgehoben.
Möchte aber gerne für das Objekt die Skalierung beibehalten.

Wie kann ich die Skalierung beibehalten oder gibt es andere wege?


EDIT:
Oder kann ich zwei Interpolatoren miteinander verbinden? Sprich ScaleInterpolator und RotationInterpolator ???

Mfg
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Ganz grob: Die Skalierung zwischen das Objekt und die Rotation klemmen:
Code:
TransformGroup transformGroupMitSkalierung = ....
transformGroupMitSkalierung.add(meinObjekt);
rotiere = new RotationInterpolator(new Alpha(1000,-1), transformGroupMitSkalierung );
Wurzel.add(rotiere);
Wurzel.add(transformGroupMitSkalierung);
 

truesoul

Top Contributor
Danke :)

Musste die Transformation auf meinObjekt anwenden und füge dann meinObjekt ein "neuem" TransformGroup hinzu und wende dann auf das neue TransformGroup die Rotation an.
Skalierung bleibt bestehen :)

Was wäre ich ohne dich ;)

Aber eine kleine frage habe ich noch .
Kann ich den Punkt der Rotation selbst bestimmen?
Sprich habe ein Brett als Objekt und möchte gerne den Punkt genau in der Mitte haben ?
 
Zuletzt bearbeitet:

Marco13

Top Contributor
D.h. das Brett soll immer um den Mittelpunkt gedreht werden? Eine Rotation dreht in einem Szenegraphen erstmal um das lokale Koordinatensystem. Wenn um einen anderen Punkt gedreht werden soll, kann man das erreichen, indem man den Rotationspunkt in den Ursprung verschiebt, dann rotiert, und wieder zurück verschiebt.
 

Ähnliche Java Themen

Neue Themen


Oben