none
Animation RRS feed

  • Frage

  • Hi,

    ich möchte eine Animation programmieren:

    Vor einem Image (panel mit BackgroundImage) soll eine 2D-Kinematik

    Bewegungen darstellen. Natürlich sollen die Pixel des Images nicht zerstört werden.

    Eigentlich möchte ich auf DirectX verzichten.

    Habt ihr Tipps?

    Danke Michael

    Samstag, 24. Juli 2010 07:50

Antworten

  • Hallo Michael,

         > eigentlich möchte ich nur über einem Bitmap eine Vektorgraphik (Polygon) bewegen ...

    Vektorgraphik wäre natürlich diese absolute Domaine von WPF, aber Polygone zeichnen, sollte jetzt für WinForms durch die [Graphics.DrawPolygon-Methode (System.Drawing)] auch nicht das Problem sein. Dann im Paint halt drüberzeichnen, wobei das über Invalidate ggf. mit Timer angtriggert werden müsste - und Du müsstest es beim Großziehen auch transformieren etc..
    Kommt - wie gesagt auf die Komplexität der Animation an.

    Vielleicht nochmal zu WPF, Du hast selber beim Entwicklen normal nichts mit DirectX-Befehlen (o.ä.) direkt zu tun und alles wird bereits durch .NET Framework installiert. Unter der Haube wird bei 2D normal mittels Direct3D gerendert, aber für Dich sind das eben saubere managed .NET Methoden nach aussen. 




         > [codeProject-Beispiel] Wie wird das gemacht ohne WPF oder DirectX?

    das Beispiel nutzt da normales WinForms Painting, rechnet sich in ellenlangen Matrizen die richtigen Werte aus (wie will man das später warten?) und zeichnet das dann, während es sich auch nicht sauber in VS 2008 íntergriert (geschweige denn VS 2010) wird. Hier rate ich davon ab.


    ciao Frank
    Samstag, 24. Juli 2010 10:42

Alle Antworten

  • Hallo Minmuel,

    es kommt noch etwas auf die Art der Animation an, die für mich noch nicht vollständig beschrieben ist.
    Aber soetwas kann man gut (am besten) mit WPF machen [Übersicht über Animationen].
    Wenn Du in Windows Forms arbeitest, kann Du dort das ElementHost-Control dafür benutzen, um das WPF-Control zu hosten.
    Das heisst aber auch, das intern ggf. DirectX zumEinsatz kommen kann - nur Du merkst ggf. nichts davon.
    Für einfachere Dinge (bei WinForms) käme auch ein "animiertes GIF" in Frage - es kommt auf Anordnung in Deiner Form, ob es über etwas anderes herüberanimiert werden soll ... etc an.

     

     


    ciao Frank
    Samstag, 24. Juli 2010 08:48
  • Hallo Frank,

    eigentlich möchte ich nur über einem Bitmap eine Vektorgraphik (Polygon)

    bewegen ohne das Teile des Bitmaps verschwinden, wie hier ausgeführt:

    http://www.codeproject.com/KB/graphics/2d_poligon_drawer-animato.aspx

    Wie wird das gemacht ohne WPF oder DirectX?

    Danke Michael

     

    Samstag, 24. Juli 2010 09:54
  • Hallo Michael,

         > eigentlich möchte ich nur über einem Bitmap eine Vektorgraphik (Polygon) bewegen ...

    Vektorgraphik wäre natürlich diese absolute Domaine von WPF, aber Polygone zeichnen, sollte jetzt für WinForms durch die [Graphics.DrawPolygon-Methode (System.Drawing)] auch nicht das Problem sein. Dann im Paint halt drüberzeichnen, wobei das über Invalidate ggf. mit Timer angtriggert werden müsste - und Du müsstest es beim Großziehen auch transformieren etc..
    Kommt - wie gesagt auf die Komplexität der Animation an.

    Vielleicht nochmal zu WPF, Du hast selber beim Entwicklen normal nichts mit DirectX-Befehlen (o.ä.) direkt zu tun und alles wird bereits durch .NET Framework installiert. Unter der Haube wird bei 2D normal mittels Direct3D gerendert, aber für Dich sind das eben saubere managed .NET Methoden nach aussen. 




         > [codeProject-Beispiel] Wie wird das gemacht ohne WPF oder DirectX?

    das Beispiel nutzt da normales WinForms Painting, rechnet sich in ellenlangen Matrizen die richtigen Werte aus (wie will man das später warten?) und zeichnet das dann, während es sich auch nicht sauber in VS 2008 íntergriert (geschweige denn VS 2010) wird. Hier rate ich davon ab.


    ciao Frank
    Samstag, 24. Juli 2010 10:42