Étape 12 : Avancé - fleurs animées
(lien vers la version animée de HTML5)
Pour de meilleurs résultats lorsque visant à exporter une image GIF animée, vous devez générer quelques teintes différentes (couleurs) que possible, sinon le codeur GIF aura des ennuis construire une palette de couleurs bonne.
Dans cet exemple, l’instruction (int)(value/127) * 127 est ici de limiter la résolution de la couleur.
Formule
FRAMES = 20; WIDTH = 150; RATIO = 1; X_MIN = -2; X_MAX = 2; Y_MIN = -2; Y_MAX = 2; TIME_INCREMENT = PI/10; OUT_PAUSE = false; float flower(x, y, t, n, k1, k2) { float radius = dist(x, y, 0, 0)/k1; // cartesian to polar float angle = atan2(x, y) + t*k2; // cartesian to polar; turns with time float value = sin(angle*n)-radius + pow(radius, exponent); value = min(255, max(0, (1+value) * 127)); return (int)(value/127) * 127; } float exponent; bool preDraw(t) { exponent = cos(t); return true; } color rgb(x,y,t) { float r = flower(x+1, y+1, t, 6, 0.5, -1); float g = flower(x+0.5, y-0.20, t, 5, 0.7, .2); float b = flower(x-1, y-1, t, 21, 0.5, .5); return color(255-r, 255-g, 255-b); }