SOURCE

console 命令行工具 X clear

                    
>
console
var caos = {
  start: {x:0,y:0},
  f1: function (p) {
    return {x: 0, 
            y: 0.16 * p.y};
  },
  f2: function (p) {
    return {x: 0.85 * p.x + 0.04 * p.y, 
            y: -0.04 * p.x + 0.85 * p.y + 1.6};
  },
  f3: function (p) {
    return {x: 0.2 * p.x - 0.26 * p.y, 
            y: 0.23 * p.x + 0.22 * p.y + 1.6};
  },
  f4: function (p) {
    return {x: -0.15 * p.x + 0.28 * p.y, 
            y: 0.26 * p.x + 0.24 * p.y + 0.44};
  },
  next: function (p) {
    var r = Math.random();
    if (r <= 0.02) return caos.f1(p);
    else if (r < 0.88) return caos.f2(p);
    else if (r < 0.94) return caos.f3(p);
    return caos.f4(p);
  }
};
var output = {
  canvas: document.getElementById('c1'),
  button: document.getElementById('b1'),
  start: function () {
    output.context = output.canvas.getContext('2d');
    output.canvas.width = window.innerWidth;
    output.canvas.height = window.innerHeight;
    output.clear();
    output.point = caos.start;
    output.context.fillStyle = 'springgreen';
    output.draw();
    output.button.addEventListener('click', output.start);
  },
  loop: 0,
  scale: {x: 0.13, y: 0.09},
  draw:  function () {
    for (var i=0; i<200; i++) {
      var next = caos.next(output.point);
      output.context.fillRect(
        window.innerWidth/2 + Math.floor(next.x * window.innerWidth * output.scale.x),
        window.innerHeight - Math.floor(next.y * window.innerHeight * output.scale.y),
        1,1);
      output.point = next;
    }
    output.loop++
    if (output.loop < 10E2) requestAnimationFrame(output.draw);
  },
  clear: function () {
    var w = output.canvas.width, 
        h = output.canvas.height;
    output.loop = 0;
    output.context.clearRect(0,0,w,h);
  }
};
output.start();
<canvas id="c1"></canvas>
<button id="b1"></button>
body {
  background: black;
  overflow: hidden;
}
button {
  position: absolute;
  top: 0;
  left: 0;
}