Posted to tcl by avl at Sun Mar 19 12:31:47 GMT 2017view raw

  1. grid [canvas .c -w 256 -he 256]
  2. .c create rect 0 0 200 200
  3.  
  4. set p [image create photo -width 256 -height 256]
  5.  
  6. set h [expr 255**3]
  7.  
  8. for {set x 0} {$x<256} {incr x} {
  9. for {set y 0} {$y<256} {incr y} {
  10.  
  11. set a [expr {$x*4/255.0-2}]
  12. set b [expr {$y*4/255.0-2}]
  13.  
  14. set c $a
  15. set d $b
  16.  
  17. set n 0
  18.  
  19. while {$n<200} {
  20. set a [expr {$a*$a-$b*$b+$c}]
  21. set b [expr {2*$a*$b+$d}]
  22.  
  23. if {$a*$a+$b*$b>4} {break}
  24.  
  25. incr n
  26. }
  27.  
  28. #.c create rect $x $y $x $y -fill [format #%06x [expr $n*$h/100]]
  29. #puts "$x $y $a $b $n [format #%06x [expr $n*$h/100]]"
  30. $p put [format #%06x [expr {$n*$h/200}]] -to $x $y
  31. }
  32. }
  33.  
  34. .c create image 128 128 -image $p
  35.