Mariani/Silver Algorithm  

Robert P. Munafo, 2010 Sep 8.

An Adjacency Optimization technique that is best suited for applications where it is of utmost importance that features such as cusps are shown with full accuracy.

See Adjacency Optimization for descriptions of other similar algorithms, and speed improvements for a more comprehensive listing of algorithms and techniques.

The Mariani/Silver algorithm starts with a rectangular grid of pixels. The pixels on the boundary of the grid are evaluated, and if they all evaluate to the same result the rectangle is filled in with a solid color; otherwise the rectangle is divided in half (or quarters) and the algorithm is applied again to each half/quarter. An additional speed savings results from evaluating the halves right away, in recursive fashion, because three of the four edges of each subrectangle will have already been evaluated. Otherwise you should store them in a Dwell Array and use that array to test the points again later when it is time to scan the subrectangle.

Rectangles are not the only way to subdivide regions: one can also use triangular regions or any other type of shape. These images by Ivan Freyman use the Mariani/Silver subdivision structure as an artistic element, and demonstrate a non-rectangular division scheme:

standard rectangular divisions
standard rectangular divisions

pentagonal and triangular subdivisions
pentagonal and triangular subdivisions

Mariani/Silver will occasionally miss features if the maximum Dwell is too low, and often misses parts of cusps narrower than one pixel. This latter flaw is common to all adjacency optimizations except circle tiling.

From the Mandelbrot Set Glossary and Encyclopedia, by Robert Munafo, (c) 1987-2017.     Mu-ency index

Robert Munafo's home pages on HostMDS   © 1996-2017 Robert P. Munafo.
aboutcontact    mrob    mrob27    @mrob_27    mrob27
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. Details here.

This page was written in the "embarrassingly readable" markup language RHTF, and was last updated on 2017 Feb 02. s.11