An implementation of the the Mandelbrot set exercise from the end of chapter two of O'Reilly's Programming Rust.
I have deviated from the original in two ways, one major, one minor.
First, I've made the rendering plane, which maps from the cartesian
(pixel) plane to the complex plane, into a struct, and put all the major
rendering features into an implementation on that struct. By adding a
subplane(), I was able to make crossbeam rendering much
simpler and easier to read by providing horizontal slices of the pixel
plane, and I was also able to avoid recalculating the relationship
between the two planes for every pixel. A small performance boost, but
Second, the output is PNM rather than PNG. I'm a huge PNM partisan, and you kids better get off my lawn.