Der Martin: (C) Wie Algorithmus für Grafikeffekt finden?

Beitrag lesen

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.