Advertisement
Guest User

Dan Shiffman - Mandelbrot Extra sliders

a guest
Jan 26th, 2020
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var colval = 4;
  2. var maxval = 3;
  3. var iterations = 4;
  4. var xminSlider;
  5. var xmaxSlider;
  6. var yminSlider;
  7. var ymaxSlider;
  8. var bailout;
  9. var iterslider;
  10. var colslider;
  11. var frDiv;
  12.  
  13. function setup() {
  14.   createCanvas(200, 200);
  15.   pixelDensity(1);
  16.  
  17.   xminSlider = createSlider(-maxval, maxval, 1.45, 0.01);
  18.   xmaxSlider = createSlider(-maxval, maxval, -2.45, 0.01);
  19.   yminSlider = createSlider(-maxval, maxval, -1.85, 0.01);
  20.   ymaxSlider = createSlider(-maxval, maxval, 1.85, 0.01);
  21.   bailout = createSlider(1, 32, 16, 1);
  22.   iterslider = createSlider(iterations, iterations * 32, 24, 1);
  23.   colslider = createSlider(0, 256, 16, 4);
  24.   frDiv = createDiv();
  25. }
  26.  
  27. function draw() {
  28.   loadPixels();
  29.   for (var x = 0; x < width; x++) {
  30.     for (var y = 0; y < height; y++) {
  31.  
  32.       var a = map(x, 0, width, xminSlider.value(), xmaxSlider.value());
  33.       var b = map(y, 0, height, yminSlider.value(), ymaxSlider.value());
  34.       var ca = a;
  35.       var cb = b;
  36.       var n = 0;
  37.  
  38.       while (n < iterslider.value()) {
  39.         var aa = a * a - b * b;
  40.         var bb = 2 * a * b;
  41.         a = aa + ca;
  42.         b = bb + cb;
  43.         if (a * a + b * b > bailout.value()) {
  44.           break;
  45.         }
  46.         n++;
  47.       }
  48.  
  49.       var bright = map(n, 0, colslider.value(), 0, 1);
  50.       bright = map(sqrt(bright), 0, 1, 0, 255);
  51.       if (n == iterslider.value()) {
  52.         bright = 0;
  53.       }
  54.       var pix = (x + y * width) * 4;
  55.       pixels[pix + 0] = bright % 4 * 64;
  56.       pixels[pix + 1] = bright % 8 * 32;
  57.       pixels[pix + 2] = bright % 16 * 16;
  58.       pixels[pix + 3] = 255;
  59.     }
  60.   }
  61.   updatePixels();
  62.   frDiv.html(floor(frameRate()));
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement