Hilbert Curve
The other day, I came across this, a visualization of the Internet address space. Where they ping all the IP addresses in the IP v4 space and plot a table depending on the response from the server, they draw the graph using a fractal called a Hilbert Curve, following uses my turtle graphics implementation to draw the curve.
(ns hilbert
(:use turtle))
(def size 10)
(def width 330)
(def height 330)
(defn hilbert [turtle level angle]
(if (> level 0)
(doto turtle
(right angle)
(hilbert (dec level) (- angle))
(forward size)
(left angle)
(hilbert (dec level) angle)
(forward size)
(hilbert (dec level) angle)
(left angle)
(forward size)
(hilbert (dec level) (- angle))
(right angle))))
(let [turtle (turtle width height)]
(doto turtle
(pen-up)
(go (- 10 (/ width 2)) (- 10 (/ height 2)))
(pen-down)
(hilbert 5 90)
(show)))