Simple, schnelle Grafik-Animation.
-
Hallo,
welche Möglichkeit ist die Beste, um in einer Windows-Forms Anwendung eine möglichst schnelle Grafik-Animation zu programmieren?
Die Grafikelemente sind simple Quadrate, bestehend aus ca. 5*5 Pixeln, die in einem SplitContainer-Panel möglichst schnell die Farbe wechseln sollen.
Die Quardate sind in einer Art Matrix-Form angeordnet, die aus ca. 80 Zeilen und 120 Spalten besteht.
Ich habe es mit einfachen Buttons versucht aber beim Scrollen des Split-Panels bauen sich die Zeilen mit den Buttons sehr langsam auf und die Farben verschmieren während der Bewegung.Einfache Rect-Elemente nehmen und 'selber' zeichnen? Oder lieber WPF oder DirectX nehmen?
-
GDI+
zwar nicht schnell, aber wenns nur so simple formen sind müsste das reichen. da kannst dann sogar das doublebuffering einschalten, dann siehts auch schön aus.
greez denjo303
-
Was heisst "möglichst schnell die Farbe wechseln"? Kannst du dies näher ausführen?
Grüssli
-
Dravere schrieb:
Was heisst "möglichst schnell die Farbe wechseln"? Kannst du dies näher ausführen?
Grüssli
Quadrate sind nebeneinander in einer Zeile angeordnet, mit einem kleinen Abstand von ca. einem Pixel dazwischen.
Anfangs sind z.B. alle Quadrate einer Zeile grün. Nun wird das Quadrat ganz rechts z.B. für 20 Millisekunden rot, dann wird es wieder grün und das zweite Quadrat von rechts wird rot, usw.
Insgesamt hat man dann den Eindruck, dass sich ein rotes Quadrat von rechts nach links bewegt. Eine Art animierte Lichterkette also.
Das ganze soll nun für insgesamt rund 80 Zeilen mit je ca. 120 Quadraten möglich sein, wobei nicht immer nur ein Quadrat von rechts nach links wandert, es können auch mehrere auf einmal in verschiedenen Farben sein.
Das ganze soll auch möglichst ohne das die Farben verschmieren während des Scrollens laufen können.Danke auch schonmal an denjo303.
Gruß,
g.n.
-
nimm die GDI+ lib dafür, das reicht, dx etc wäre dafür zu overkill alles erstmal zu initialisieren zu müssen wenn du mit .net arbeitest. ist echt einfach zu handhaben, musst nur systemgünstig damit arbeiten, also nicht jedesmal nen neuen brush bei jedem durchgang erzeugen etc.