<% pixsize = 6 cols,lines = 160, 60 minre,minim = -2.04, -1.15 maxre,maxim = 0.9, 1.15 maxiter = 16 puts '<html><head>' puts '<title>Mandelbrot fractal in ERuby</title>' puts '<style type="text/css"><!--' maxiter.times do |n| pitch1=n*25/maxiter pitch2=n*16/maxiter pitch3=n*10/maxiter pitch1=15 if pitch1>15 printf '.c%X {', n printf ';color:#%X%X%X ', pitch1,pitch2,pitch3 printf ';background:#%X%X%X', pitch1,pitch2,pitch3 puts '}' end print 'body{background:white;color:white' print ';font-family:monospace;font-size:', pixsize, 'px}' print '--></style></head><body><pre>' $defaultcolor=maxiter-1 $lastcolor=$defaultcolor def color(c) return if c==$lastcolor endcolor printf '<span class=c%X>', c unless c==$defaultcolor $lastcolor=c end def endcolor print '</span>' unless $lastcolor == $defaultcolor end im=minim lines.times do re=minre cols.times do zr,zi = re,im n=0 (0..maxiter).each do |n| a,b = zr*zr, zi*zi break if a+b > 4.0 zr,zi = a-b+re, 2*zr*zi+im end color n%maxiter print '#' re += (maxre-minre)/cols end im += (maxim-minim)/lines puts end endcolor puts '</pre></body></html>' %>
################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################ ################################################################################################################################################################