Animation an TransformGroup anpassen

aze

Bekanntes Mitglied
Hi

Ich hab in meinen Programm eine TransformGroup(jaws) und ein Transformobject(TargetTransform).Beide sind global vorhanden.Durch folgende Methode füge ich eine Rotation ein

Java:
private void rotateJCanvas3D(int x,int y,int z)
    {
        xChangeTransform = x * rotXMul; // rotXMul   =  0.01
        YChangeTransform = y * rotYMul;// rotYMul   =  0.01
        ZChangeTransform = z * rotZMul;// rotZMul   = 0.01

        yTransform.rotY( xChangeTransform );
    	XTransform.rotX( YChangeTransform );
        zTransform.rotZ(ZChangeTransform);

    	targetTransform.mul(targetTransform, XTransform);
    	targetTransform.mul(targetTransform, yTransform);
        targetTransform.mul(targetTransform,zTransform);

        jaws.getRoot().setTransform(targetTransform);


    }

Das klappt soweit auch ganz gut.Allerdings habe ich von meine Vorgänger ein paar Animationen geerbt,die damit nicht harmonieren.Das heißt : Wenn eine Animation abläuft, in der die TransformGroup gedreht wird und dann die Rotation aufgerufen wird , bleibt diese im Zustand vor der Animation hängen.

Hier die beiden Animation:

Java:
   private void createLineToothAnimation(Alpha a, BranchGroup bg) {
        for (int n=0;n<JawsConst.TEETH_COUNT;n++) {
            Quat4f[] qs=getToothRotations(n);
            Point3f[] ps=getToothPositions(n);
            RotPosPathInterpolatorAlpha rpp=new RotPosPathInterpolatorAlpha( a,
            getToothPosTransform(n), new Transform3D(), knotsDummy, qs, ps);
            rpp.setSchedulingBounds(new BoundingSphere(new Point3d(0,0,0),10000.0));
            animation.addChild(rpp);

        }
    }

Java:
  private void createRecenterAnimations(Alpha a, BranchGroup bg, int nm) {
        Transform3D t3d=new Transform3D();
        root.getTransform(t3d);
        RotPosPathInterpolatorAlpha rppi=new RotPosPathInterpolatorAlpha(
        a, root, new Transform3D(), knotsDummy, getRootRotation(nm), 
        getRootPosition());
        rppi.setSchedulingBounds(new BoundingSphere(new Point3d(0,0,0),10000.0));
        bg.addChild(rppi);

    }
 

aze

Bekanntes Mitglied
Hat sich erledigt.

Ein einfaches jaws.getRoot().getTransform(targetTransform) am Anfang der Rotationsroutine hat gereicht
 

aze

Bekanntes Mitglied
Na okay,so ganz geht es dann doch nicht.Bei der Rotation funktioniert es ,aber nicht bei der Translation.

Java:
private void mouseZoomJCanvas3D(int zoomfactor )
    {
        jaws.getRoot().getTransform(targetTransform);

        targetTransform.get(transVector);

        transVector.z = zoomfactor;

        targetTransform.setTranslation(transVector);


        jaws.getRoot().setTransform(targetTransform);


    }

   private void mouseTranslateJCanvas3D(MouseEvent me)
    {
        jaws.getRoot().getTransform(targetTransform);

        targetTransform.get(transVector);

        int xchange = me.getX() - mousePressedX;
        int ychange = me.getY() - mousePressedY;

        xtrans+= xchange * transXMul;
        ytrans-= ychange * transYMul;
        
        transVector.x =  xtrans; 
    	transVector.y =  ytrans; 

        targetTransform.setTranslation(transVector);

        jaws.getRoot().setTransform(targetTransform);
    }
 

Marco13

Top Contributor
Die Beschreibungen sind schon immer sehr dünn. Schon versucht, die Translation auch als Matrix dazuzumultiplizieren?
Java:
//targetTransform.setTranslation(transVector);

Transform3D translation = ... Translation für transVector....
targetTransform.mul(translation);
jaws.getRoot().setTransform(targetTransform);
 

aze

Bekanntes Mitglied
Die Beschreibungen sind schon immer sehr dünn. Schon versucht, die Translation auch als Matrix dazuzumultiplizieren?
Java:
//targetTransform.setTranslation(transVector);

Transform3D translation = ... Translation für transVector....
targetTransform.mul(translation);
jaws.getRoot().setTransform(targetTransform);

Ja,aber dann sind die Transformationen(Verschiebung nach Lionks ,Verschiebung nach rechts) sehr träge.Also wenn ich von Linksverschiebung auf Rechtsverschiebung wechsle,dauert es erstmal ne Weile bis die Richtung wirklich verschoben wird.
 

Marco13

Top Contributor
Ja, deine Maussteuerung mit dem "xchange" usw. hab' ich jetzt nicht nachvollzogen... so wenig Info, kein KSKB... raten dauert so lange...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Minecraft Casino EinarmigerBandit Animation Spiele- und Multimedia-Programmierung 5
B Animation Spiele- und Multimedia-Programmierung 4
Meeresgott Morph Targets und Skeleton Animation Spiele- und Multimedia-Programmierung 2
J (Libgdx) animation nur einmal in einem Event aufrufen Spiele- und Multimedia-Programmierung 1
N Animation funktioniert icht wie sie soll Spiele- und Multimedia-Programmierung 10
K Animation fliegendes JLabel Spiele- und Multimedia-Programmierung 1
R [LWJGL] Skeletal Animation Spiele- und Multimedia-Programmierung 5
F [LWJGL] Skeletal Animation 3D Spiele- und Multimedia-Programmierung 1
R Animation mit Interpolator starten wenn Key pressed Spiele- und Multimedia-Programmierung 0
kaoZ Animation in eigenen Thread auslagern..... Spiele- und Multimedia-Programmierung 1
S Animation zieht "Spur" hinter sich her Spiele- und Multimedia-Programmierung 2
H [ANIMATION] Hintergrundbild nur einmal zeichnen Spiele- und Multimedia-Programmierung 3
A LwJGL - Animation Stockt Spiele- und Multimedia-Programmierung 5
0 Sprung Animation Spiele- und Multimedia-Programmierung 10
M [Java3D] Animation von mehreren Objekten Spiele- und Multimedia-Programmierung 7
C Java3D Interaktion während Animation Spiele- und Multimedia-Programmierung 3
StrikeTom .gif animation als image abspielen Spiele- und Multimedia-Programmierung 2
G [Java3D] Probleme bei Animation Spiele- und Multimedia-Programmierung 4
baddestpoet Animation startet bei gedrückter Taste immer wieder von vorn Spiele- und Multimedia-Programmierung 12
M Animation Spiele- und Multimedia-Programmierung 5
S Animation mit repaint Spiele- und Multimedia-Programmierung 2
K "Animation" funktioniert nur bedingt. Spiele- und Multimedia-Programmierung 8
W Flüssige Animation Spiele- und Multimedia-Programmierung 8
B Animation durch Button auslösen Spiele- und Multimedia-Programmierung 2
J Animation hinter transparentem Bild auf der GlassPane Spiele- und Multimedia-Programmierung 6
D Problem mit Animation bei Little Fighter Spiele- und Multimedia-Programmierung 5
R Double Buffering in Animation ich bekomms einfach nicht hin? Spiele- und Multimedia-Programmierung 3
G GL4Java Animation erstellen Spiele- und Multimedia-Programmierung 2
T Geschwindigkeit einer Animation aendern Spiele- und Multimedia-Programmierung 6
S 3ds animation einbinden Spiele- und Multimedia-Programmierung 3
A Animation mit jmonkeyengine Spiele- und Multimedia-Programmierung 10
S Gif Animation aus Prog heraus erstellen Spiele- und Multimedia-Programmierung 11
A JAVA3D TransformGroup <--> Group Problem Spiele- und Multimedia-Programmierung 3
H 3DS zur TransformGroup Spiele- und Multimedia-Programmierung 2
B Parent vom TransformGroup entfernen Spiele- und Multimedia-Programmierung 8
K TransformGroup werden nicht getrennt behandelt Spiele- und Multimedia-Programmierung 2
Developer_X Transform3D[] und TransformGroup[] Spiele- und Multimedia-Programmierung 13
G Behaviors bei TransformGroup Spiele- und Multimedia-Programmierung 2
G Ermitteln eines Punktes in einer anderen TransformGroup Spiele- und Multimedia-Programmierung 2
R TransformGroup finden und bearbeiten Spiele- und Multimedia-Programmierung 8
H Transformgroup zur Laufzeit bearbeiten Spiele- und Multimedia-Programmierung 4
B Wie kann ich bei g.rotate() auch die Koordinaten anpassen? Spiele- und Multimedia-Programmierung 3
I Bei MusikStream Lautstärke anpassen Spiele- und Multimedia-Programmierung 0
M Bilderwechsel in Video an Sound anpassen Spiele- und Multimedia-Programmierung 2
C 2D Sprites an die JPanel Größe (Auflösung) anpassen/skalieren Spiele- und Multimedia-Programmierung 3
A Javasound - Kann Lautstärke nicht anpassen Spiele- und Multimedia-Programmierung 9
D JFrame Resize Polygone anpassen Spiele- und Multimedia-Programmierung 6
G Framerate anpassen Spiele- und Multimedia-Programmierung 3

Ähnliche Java Themen


Oben