Interpolatoren kombinieren ?

Status
Nicht offen für weitere Antworten.

DeziBell

Mitglied
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 !


Code:
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;
}
 

Illuvatar

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

DeziBell

Mitglied
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.

Code:
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
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben