Spela med matematik: göra animerad GIF och HTML5 (12 / 15 steg)
Steg 12: Avancerade - animerade blommor
(länk till HTML5 animerade versionen)
För bästa resultat när syftar till exportera en animerad GIF, du ska generera så få olika nyanser (färger) som möjligt, annars GIF kodaren har bekymmer att bygga en bra färgpalett.
I det här exemplet uttalande (int)(value/127) * 127 är här för att begränsa färgupplösningen.
Formel
STOMMEN = 20;
BREDD = 150;
RATIO = 1;
X_MIN = -2; X_MAX = 2;
Y_MIN = -2; Y_MAX = 2;
TIME_INCREMENT = PI/10;
OUT_PAUSE = false;
flyta blomma (x, y, t, n, k1, k2) {
float radie = dist(x, y, 0, 0)/k1; kartesiska till polar
float vinkel = ARCTAN2 (x, y) + t * k2; kartesiska till polar; blir med tiden
flyta värde = sin(angle*n)-radius + pow (radie, exponent);
värde = min (255, max (0, (1 + värde) * 127));
Return (int)(value/127) * 127;
}
float exponent;
bool preDraw(t) {
Exponenten = cos(t);
return true;
}
färg rgb(x,y,t) {
flyta r = blomma (x + 1, y + 1, t, 6, 0,5, -1);
flyta g = blomma (x + 0,5, y-0.20, t, 5, 0.7,. 2);
flyta b = blomma (x-1, y-1, t, 21, 0,5. 5);
returnera färg (255-r, 255-g, 255-b).
}