Skip Navigation Links  
Skip Navigation Links
Wir öffnen das Testprogram und erzeugen einen ´TransformAnimator und legen auf "GetTrfMatix" das Event TransformAnimator_GetTrfMatix
      ´...
      TransformAnimator TransformAnimator = new TransformAnimator();
       ...
         protected override void OnCreated()
        {
            base.OnCreated();
            Cone.Material = Materials.Gold;
            TransformAnimator.Device = this;
            TransformAnimator.GetTrfMatix += TransformAnimator_GetTrfMatix;
            TransformAnimator.Start(); // und starten den Animator
        }
         private Matrix TransformAnimator_GetTrfMatix(object sender, double t)
        {
            return Matrix.Scale(1+0.5 * t, 1 + 0.5 * t, 1 + 0.5 * t);
          
        }
    

Die ganze Scene wird scaliert. Fügen wir im Createdteil
   
            ...
            TransformAnimator.Entities.Add(Sphere1);
            TransformAnimator.Entities.Add(Sphere2);    
            ...

 

ein, so werden nur die Kugeln scaliert.
Ein anderes Beispiel einer Transformation wäre eine Translation. Dazu müssen wir TransformAnimator_GetTrfMatix ändern:
    private Matrix TransformAnimator_GetTrfMatix(object sender, double t)
        {
           // return Matrix.Scale(1+0.5 * t, 1 + 0.5 * t, 1 + 0.5 * t);
            return Matrix.Translation(new xyz(t * 10, 0, 0));
        }

    

Jetzt bewegeen sich die beiden Kugeln von links nach rechts.
Entfernen wir die TransformAnimator.Entities-Einträge, so bewegt sich die ganze Scene von links nach rechts.
Hier der Code;

 
Copyright © Drawing3D inc