Hallo Markus,
Wenn man sich beispielsweise diesen (simplen) Effekt ansieht, kann man mit der Zeile
((unsigned int*)screen->pixels)[ofs] = i * i + j * j + tick;
den Effekt so ändern, dass etwas ganz anderes, zum Teil auch Blödsinn rauskommt.
Richtig - an der Stelle ist, so wie es aussieht, pure Mathematik gefragt.
Mich interessiert aber, wie man beispielsweise darauf kommt, dass i * i + j * j genau diese pulsierenden Kreise erzeugt.
Dann erinnere dich bitte nochmal an den Mathe-Unterricht. Was ist durch die Gleichung
x² + y² = r²
beschrieben? Genau, ein Kreis um den Koordinatenursprung mit dem Radius r. Wenn also in deinem Beispiel i und j die Bildschirmkoordinaten sind, dann kann man diese Beziehung auch andersrum interpretieren: Für alle Punkte, die den gleichen Abstand vom Ursprung haben [also einen Kreis bilden], ergibt sich der gleiche Wert, d.h. die gleiche Farbe. Es entstehen also "unendlich" viele Kreise, deren Farbe sich mit ihrem Radius ändert.
So long,
Martin
Niemand ist überflüssig: Er kann immer noch als schlechtes Beispiel dienen.