## Mandelbrot Set

- XLogo

This program draws the classic Mandelbrot Set, drawn in shades of green. Use an image editing program such as Photoshop to best adjust the colors.

The Mandelbrot Set is defined by the equation z=z2+c, where c is the starting point in the complex plane, and z is initially zero. This function is iterated many times. If z eventually escapes a circle of radius 2 centred on the origin, then the initial point c is not in the Mandlebrot set. It is assigned a color based on the number of iterations it took for z to escape. Otherwise point c is part of the Mandlebrot set and is colored black.
We approximate infinity with a large number. This assumption is not always valid, but we must make it to avoid infinite looping.

To New
# set default screen, pen and turtle values
ResetAll SetScreenSize [400 400] HideTurtle
SetSC Black SetPC Green SetPS 1 PenUp
End

To Mand :Mp :Np
Make "M 0 Make "N 0 Make "Count 0
Repeat 90 [
Make "Mnew (Power :M 2) - (Power :N 2) + :Mp
Make "N (2*:M*:N) + :Np
Make "M :Mnew
Make "Count :Count + 1
If ((Power :M 2) + (Power :N 2)) > 4 [
SetPC PenCol :Count Stop] ]
End

To PenCol :Theta
Make "Gre 255 *Sin :Theta
Output ( List 0 :Gre 0 )
End

To Go :Order
New
Make "Size Item :Order [24 16 12 8 6 4 3 2 1]
SetPW :Size
Make "Start (Integer :Size/2)-192
For (List "Y 0 191 :Size) [
For (List "X :Start 191 :Size) [
SetPC Black Mand (:X/140)-0.7 :Y/140
SetXY :X :Y Dot Pos
SetXY :X Minus :Y Dot Pos ] ]
End

Mandelbrot

Procedures blue
Variables pink