<canvas id="TGspace" width="480" height="480"></canvas>
var t = new TurtleGraphics.Turtle();
var angle = 90;
var step = .2;

var actions = [
  function() {
    t.Turn(angle);
    angle = -angle;
  },
  function() {
    angle = -angle;
    t.Move(step);
    t.Turn(-angle);
  },
  function() {
    t.Move(step);
  },
  function() {
    t.Turn(-angle);
    t.Move(step);
    angle = -angle;
  },
  function() {
    angle = -angle;
    t.Turn(angle);
  }
];

function hilbert_curve_nr(level) {
  var stack = [];
  var pointer = 0;
  while (pointer < actions.length) {
    actions[pointer++]();
    if (pointer < actions.length) {
      if (stack.length < level) {
        stack.push(pointer);
        pointer = 0;
      }
    } else if (stack.length) {
      pointer = stack.pop();
    }
  }
}

hilbert_curve_nr(4);

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://www.win.tue.nl/~wstomv/edu/javascript/turtle-graphics.js