(buddhabrot graymap exposures maxiter)
This procedure performs the Buddhabrot rendering and returns a graymap with the result with the same dimensions as the precomputed mandelbrot set provided as the first parameter (expected to be in the range xmin:-2.0 xmax:1.0 ymin:-1.5 ymax1.5). The number of exposures is counted in millions, if a random point belongs to a pixel area that is regarded to be in the MSET in the precomputed graymap this particular point is not iterated (and does not count as a valid exposure).
The precomputed graymap specifies the resolution of the Buddhabrot rendering result and informs the renderer which points can be safely ignored. If a randomly chosen point happens to be in a pixel with value 0, a new point can be chosen immediately (and is not counted as a valid exposure). The precomupted graymap may also be just plain white, thus no pixel areas are excluded from examination.
The maxiter parameter doesn’t necessarily need to be the same as the one that has been used to precompute the mandelbrot set.
The Buddhabrot is the probability distribution over the trajectories of points that escape the Mandelbrot fractal. Its name reflects its pareidolic resemblance to classical depictions of Gautama Buddha, seated in a meditation pose with a forehead mark (tikka), a traditional topknot (ushnisha) and ringlet hair.
The resulting 16 bit graymap is returned.
> (set-mandelbrot-interior-mode! 0) ok > (define precomputed-graymap (mandelbrot -2.0 1.0 -1.5 1.5 200 1000)) precomputed-graymap > (define result (buddhabrot precomputed-graymap 2 200)) result > (graymap-equalize! result) #<graymap(16) orow:-1 ocol:-1 xres:-1 yres:-1 w:1000 h:1000> > (graymap-writepng result "buddhabrot-result.png") ok >
The resulting PNG file displays as follows:
Combining different maxiter values makes generation of coloured buddhabrot images possible like this one: