Java3D: Wuerfel um die X und die Y-Achse drehen
-
Ich moechte einen Wuerfel mit Java3D um zwei Achsen gleichzeitig rotieren.
Folgendes habe ich probiert, aber es wird nur um eine der Achsen rotiert.TransformGroup objSpin = new TransformGroup(); objSpin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); BranchGroup branchgroup = new BranchGroup(); branchgroup.addChild(transroot); transroot.addChild(objSpin); objSpin.addChild(new ColorCube(0.12)); Transform3D yAxis = new Transform3D(); yAxis.rotY(Math.PI/2.0); Transform3D xAxis = new Transform3D(); xAxis.rotX(Math.PI/2.0); Alpha rotationAlpha = new Alpha(-1, 7000); Alpha rotationAlphaa = new Alpha(-1, 7000); RotationInterpolator rotator = new RotationInterpolator(rotationAlpha, objSpin, yAxis, 0.0f, (float) Math.PI*2.0f); RotationInterpolator rotatora = new RotationInterpolator(rotationAlphaa, objSpin, xAxis, 0.0f, (float) Math.PI*2.0f); BoundingSphere bounds = new BoundingSphere(); BoundingSphere boundsa = new BoundingSphere(); rotator.setSchedulingBounds(bounds); rotatora.setSchedulingBounds(bounds); objSpin.addChild(rotator); objSpin.addChild(rotatora);
Was muss ich tun, damit um beide Achsen gleichzeitig rotiert wird?
Der dritte Advent kommt immer naeher, oder ist's schon der vierte? :xmas1: :xmas2: :xmas1:
-
der "saubere" weg ist, je rotationsachse eine TransformGroup zu benutzen und diese dann zu verschachteln (wobei du natürlich auf die reihenfolge achten musst!).
mit nur einer TransformGroup geht das zwar auch, dann musst du dir die berechnungen aber selbst zusammen popeln.
-
Wie muss man die TransformGroups verschachteln?
Hintereinander?
Oder beide TransformGroups mit dem Rotationsmanipulator zu einer Ober-TransformGroup hinzufuegen?
Wenn ja, wie? Mit addChild?Noch 3 Tage, dann ist Weihnachten! :xmas1: :xmas2: :xmas1: :xmas1:
-
eine TG für x-rotation, eine für y-rotation. jede verbindest du mit dem entsprechendem RotationInterpolator. dann fügst du eine TG der anderen mit addChild hinzu. wie du sie verschachtelst ist relevant für die reihenfolge der beiden rotationen.