![]() The following renderings are scaled down and enhanced with Photoshop. G++ or Microsoft Visual Studio 2015 Community Edition.The generated PPM file can be viewed and edited using popular image editing software such as GIMP and Photoshop.įor more information about the Buddhabrot rendering technique, please refer to the following article on WIKI. The application provides several options to customize the fractal such as iterations for each colour channel, the number of samples to collect and the dimensions of the image. This application generates a Buddhabrot fractal image in a PPM (Portable Pixel Map) file. The map is created by counting the number of times in the iterative creation algorithm a point is visited.Buddhabrot Fractal Generator Description: Its name reflects its pareidolic resemblance to classical depictions of Gautama Buddha, seated in a meditation pose with a forehead mark ( tikka) and traditional topknot ( ushnisha). The Buddhabrot is a fractal rendering technique related to the Mandelbrot set. The usual technique for colouring is borrowed from astronomy – take 3 images at different wavelengths (iteration counts in our case) and treat them as RGB levels. These have met with limited success so far. I’ve also experimented with directly colouring the image, and with 3D using the density as a height. You can never be certain that a point is in the MS since the definition implies that such orbits iterate to infinity… Apart from also following the MS outline, it looks fairly different so I suppose that the result of plotting both BB and anti-BB would be a bit of a mess! The take a long time to generate since the points inside the MS take the maximum iterations before you assume they’re part of the MS. If you choose them instead, then you get the anti-Buddhabrot (blue picture in the gallery above). You might be wondering why points inside the MS are ignored. Also, we ignore those points having less than a certain number of iterations. One refinement has to be added, to improve the resolution and avoid artefacts: we select random points within each pixel to start each orbit, and re-scan the list of points several times. Whenever an orbit crosses a pixel in our region of interest, we add 1 to an array representing our display area. In the next stage we re-visit all the points we recorded, and follow their orbits. This technique homes in nicely on the boundary of the MS, where the iteration count gets very high. When we find a square with variation then we subdivide it into 4 sub-squares and examine those. This assumption does have some exceptions but for our purposes they don’t matter. If they’re all the same then we assume that little of interest is happening here, let’s move on to the next square. It’s the same technique I used for Mandrian – divide the plane into squares and check the number of iterations before escape of the Mandelbrot function at the corners (always keeping a record of the position, and number of iterations). I wrote a Python program to do this, using what I think is a novel technique I could not find on the web any evidence of it. ![]() Sometimes the patterns were pronounced and interesting, and might be worth following up later! Here’s Melinda’s take on ‘why random’. ![]() And this does in fact work, but generates some artefacts which I suspect are the Moire of some quantised property (such as floating point round off) with the grid. I wondered why the points are selected randomly instead of sequentially from a grid. Eventually, successive images barely differ from each other, ultimately converging. Every so often, the current array of “hit counts” is output as an image. During re-iteration, I do not color a pixel according to the number of iterations used, but instead, I increase a count field for each pixel that it lands on before exiting. which are believed to be within the Mandelbrot Set – are ignored). Only those that do exit are then re-iterated. Then, each initial point is iterated using the standard mandelbrot function in order to test whether it escapes or not. ![]() Instead of selecting initial points on the real-complex plane one for each pixel, initial points are selected randomly from the image region. This variation considers those points that do not stay bounded, and in effect plots their density. The Mandelbrot Set is defined as the set of points whose orbits stay bounded under the iteration of z 2 + c where c is a starting point in the complex plane and z is initialised to complex 0. It’s a density plot of the orbits of points outside the Mandelbrot Set. The Buddhabrot is an interesting variation on the well-known Mandelbrot Set, invented by Melinda Green in 1993.
0 Comments
Leave a Reply. |