curlicue_fractal.sf 457 B

12345678910111213141516171819202122232425262728
  1. #!/usr/bin/ruby
  2. # Generates a Curlicue Fractal
  3. # See also:
  4. # https://mathworld.wolfram.com/CurlicueFractal.html
  5. require('GD::Simple')
  6. define τ = Num.tau
  7. define σ = sqrt(2)
  8. var (width=700, height=700)
  9. var img = %s<GD::Simple>.new(width, height)
  10. img.fgcolor('black')
  11. img.moveTo(width/2, height/2)
  12. var θ = 0
  13. 100_000.times {
  14. θ = (θ + τ*σ)
  15. img.turn(θ.rad2deg)
  16. img.line(1)
  17. }
  18. var file = File('curlicue.png')
  19. file.write(img.png, :raw)