# Interpolatoren kombinieren ?



## DeziBell (11. Mai 2006)

Hi Leute!

Ich habe ein doofe Anfänger-Frage. Beim rumspielen mit Java3D und Bewegung
schaffe ich es nicht bspw einen PositionPathInterpolator und einen einfachen RotationInterpolator
zu kombienieren. 

Die folgende BranchGroup erzeugt einen standard ColorCube und läst ihn vor und zurück Bewegen.
Kann mir jemand den Code nur soweit erweitern das der Würfel sich dabei um sich selbst dreht?
Ich bin irgendwie zu Dumm dazu 

danke !



```
public BranchGroup createSceneGraph() 
{
        BranchGroup objRoot = new BranchGroup();

        TransformGroup objTrans = new TransformGroup();
        objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
        objRoot.addChild(objTrans);

        Transform3D t3d = new Transform3D();
        Alpha alpha = new Alpha(-1, 4000);

        float [] knots = new float[3];
        Point3f [] positions = new Point3f[3];
        
        knots[0] = 0.0f;
        knots[1] = 0.5f;
        knots[2] = 1.0f;
        
        positions[0] = new Point3f(0.0f,0.0f, -2.0f);
        positions[1] = new Point3f(0.0f,0.0f, -20.0f);
        positions[2] = new Point3f(0.0f,0.0f, -2.0f);
        
        PositionPathInterpolator p =
        new PositionPathInterpolator(alpha, objTrans, t3d, knots, positions); 

        BoundingSphere bounds =
	    new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);
        p.setSchedulingBounds(bounds);
	
        objRoot.addChild(p);
        
        objTrans.addChild(new ColorCube(0.4));

        // Have Java 3D perform optimizations on this scene graph.
        objRoot.compile();

        return objRoot;
}
```


----------



## DeziBell (11. Mai 2006)

ok ! Habs dann doch noch geschafft. Hat sich erledigt. Sorry für diesen unötigen Forum Eintrag !!


----------



## Illuvatar (11. Mai 2006)

Vielleich könntest du noch deinen Code posten, wie du das geschafft hast? Vielleicht interessiert das ja nochmal jemand anderen.


----------



## DeziBell (12. Mai 2006)

Ich habe hier im Forum gesucht und irgendwo eine Antwort von "bazz-dee" -> Danke  gefunden.
Das ganze hab ich bei mir eingebaut und schon hats geklappt !!

Hier war der Thread:
www.java-forum.org/de/viewtopic.php?t=17924

Und hier der Source-Code. Ein Würfel bewegt sich vor und zurück und dreht sich dabei um seine YAchse.


```
public BranchGroup createSceneGraph() 
{
        BranchGroup objRoot = new BranchGroup();

        TransformGroup tgObjekt = new TransformGroup(); 
        TransformGroup tgRotationObjekt = new TransformGroup(); 
        TransformGroup tgPositionObjekt = new TransformGroup(); 

        tgRotationObjekt.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
        tgPositionObjekt.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
      
        Transform3D t3d_Trans = new Transform3D();
        Alpha alpha = new Alpha(-1, 4000);

        // TRANSLATION
        float [] knots = new float[3];
        Point3f [] positions = new Point3f[3];
        
        knots[0] = 0.0f;
        knots[1] = 0.5f;
        knots[2] = 1.0f;
        
        positions[0] = new Point3f(0.0f,0.0f, -2.0f);
        positions[1] = new Point3f(0.0f,0.0f, -20.0f);
        positions[2] = new Point3f(0.0f,0.0f, -2.0f);
        
        PositionPathInterpolator p =
        new PositionPathInterpolator(alpha, tgPositionObjekt, t3d_Trans, knots, positions); 

        
        // ROTATION
        RotationInterpolator p2 =
        new RotationInterpolator(alpha, tgRotationObjekt); 
 
        BoundingSphere bounds =
	    new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);
        
        p.setSchedulingBounds(bounds);
	p2.setSchedulingBounds(bounds);
        
        // Interpolatoren zuweisen
        tgPositionObjekt.addChild(p);
        tgRotationObjekt.addChild(p2);
        
        // Hierachy aufbauen
        tgObjekt.addChild(tgPositionObjekt);
        tgPositionObjekt.addChild(tgRotationObjekt);
        tgRotationObjekt.addChild(new ColorCube(0.8f));     
                 
        objRoot.addChild(tgObjekt);
        
        // Have Java 3D perform optimizations on this scene graph.
        objRoot.compile();

	return objRoot;
}
```

Vielleicht hilft das ja jemandem  Bis zur nächsten Frage...
DeziBell


----------

