Spela med matematik: göra animerad GIF och HTML5 (14 / 15 steg)
Steg 14: fraktaler
Detta är en interaktiv fraktal: flytta musen horisontellt över bilden kommer att ändra djup, fraktal.
För att uppleva interaktivitet, följa http://www.openprocessing.org/sketch/138956
Formel
BREDD = 700;
X_MIN = 0; X_MAX = 1;
Y_MIN = 0; Y_MAX = 1;
RATIO = AUTO;
MOUSE_MOVE = sant;
rekursion
// ---------
int sierpinski (u, v, w, h, djup, maxdepth) {
int val = ((int) (u/w * 3) % 2) * ((int) (v/h * 3) % 2);
om (val == 0 & & djup < maxdepth) {
returnera sierpinski ((u*3 % w)/3, (v * 3% h) / 3, w/3, h/3, djup + 1, maxdepth);
}
annat
returnera val;
}
Starta uträkningen och konvertera 0/1 till färg
// ----------------------------------------------
färg rgb (x, y) {
returnera färg (sierpinski (x, y, X_SPAN, Y_SPAN, 1, maxdepth) * 255);
}
Rita bara på effektiv maxdepth ändras
// ----------------------------------------
int maxdepth = -1;
bool preDraw(t) {
int d = (int)(mouseX/width*6) + 1;
bool doit = maxdepth! = d;
maxdepth = d;
returnera doit;
}