Moin,
bin gerade dabei eine Java 3D animation zu coden.
Ich habe eine Transformationspruppe(bestehend aus 4 BOXen) schon in der y-Achse nach oben bewegt.
Diese Gruppe soll sich dann(oben angelangt) auf der X-Achse nach rechts bewegen.
Wie kann man mehrere Positionsinterpolatoren auf eine Gruppe anwenden? Gibt es vll. die Möglichkeit Gruppen mit neuer Deklaration zu dublizieren?
Hier meine Codeschnipsel
Hat jemand eine Idee?
bin gerade dabei eine Java 3D animation zu coden.
Ich habe eine Transformationspruppe(bestehend aus 4 BOXen) schon in der y-Achse nach oben bewegt.
Diese Gruppe soll sich dann(oben angelangt) auf der X-Achse nach rechts bewegen.
Wie kann man mehrere Positionsinterpolatoren auf eine Gruppe anwenden? Gibt es vll. die Möglichkeit Gruppen mit neuer Deklaration zu dublizieren?
Hier meine Codeschnipsel
Code:
// Gruppierung der kleinen Scheibe
Transform3D tfKlScheibe = new Transform3D();
TransformGroup tgKlScheibe = new TransformGroup(tfKlScheibe);
tgKlScheibe.addChild(tgScheibeKlein);
tgKlScheibe.addChild(tgScheibeKlein1);
tgKlScheibe.addChild(tgScheibeKlein2);
tgKlScheibe.addChild(tgScheibeKlein3);
// Animation******************************************
int timeAcc = 3000;
int dauerAni = 1000;// Die Scheibe soll in 2
// Sekundenaufsteigen.
int timeHovering = 1000;// Sie soll eine Sekunden in der Hoehe verharren.
int timeFlightStart = 2000;
// Definiere die Bewegung.
Transform3D tfhelicopterFlightAxis = new Transform3D();
tfhelicopterFlightAxis.rotY(1.55);
Transform3D tfhelicopterFlightAxis2 = new Transform3D();
tfhelicopterFlightAxis2.rotX(1.55);
// Das Alpha fuer die Hubschrauberbewegung.
Alpha helicopterAlpha = new Alpha(1, Alpha.INCREASING_ENABLE,
timeFlightStart, 0, dauerAni, timeAcc, timeHovering,
dauerAni, timeAcc, 0);
// Die Hubschrauberbewegung
PositionInterpolator posIPHelicopter = new PositionInterpolator(
helicopterAlpha, tgKlScheibe, tfhelicopterFlightAxis, 0.0f, 0.5f);
PositionInterpolator posIPHelicopter2 = new PositionInterpolator(
helicopterAlpha, tgKlScheibe, tfhelicopterFlightAxis2, 0.0f, 0.5f);
BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0),
Double.MAX_VALUE);
posIPHelicopter.setSchedulingBounds(bounds);
posIPHelicopter2.setSchedulingBounds(bounds);
// Fuege die Bewegung zur Hubschraubertransformationsgruppe.
tgKlScheibe.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
tgKlScheibe.addChild(posIPHelicopter);
tgKlScheibe.addChild(posIPHelicopter2);
BranchGroup theScene = new BranchGroup();
theScene.addChild(tgBlub);
theScene.addChild(tgGrScheibe);
theScene.addChild(tgKlScheibe);
Background bg = new Background(new Color3f(1.0f, 1.0f, 1.0f));
bg.setApplicationBounds(bounds);
theScene.addChild(bg);
theScene.compile();
// Hinzufuegen der Szene
su.addBranchGraph(theScene);
Hat jemand eine Idee?