Generates the mandelbrot set.
The following lists all of the parameters found in the parameter block MandelbrotParams, which are accessed by the module MandelbrotGen and the UI Macro MandelbrotUI.
leftx | double | left edge of mandelbrot set |
rightx | double | right edge of mandelbrot set |
topy | double | top edge of mandelbrot set |
bottomy | double | bottom edge of mandelbrot set |
max_value | double | "bailout value" for iteration loop |
max_iter | int | maximum number of iterations allowed |
resx | int | horizontal resolution |
resy | int | vertical resolution |
out_fld | Mesh_Unif+Node_Data | output field containing Node_Data combined with a generated uniform Mesh. |
out_obj | DataObjectNoTexture | directly renderable output object |
The mandelbrot module generates data that represents a view of the mandelbrot set. The location of a rectangular portion of the mandelbrot set and the limits of the algorithm can be specified through a simple user interface. The number of iterations is output as a single byte of node data. The node data is mapped onto a uniform mesh and output as both Mesh_Unif+Node_Data objects and directly renderable data objects.
leftx
A member of the MandelbrotParams parameter block group, this double value is used to specify the left edge of the mandelbrot set. This is the minimum real number that the mandelbrot function iterates over.
rightx
A member of the MandelbrotParams parameter block group, this double value is used to specify the right edge of the mandelbrot set. This is the maximum real number that the mandelbrot function iterates over.
topy
A member of the MandelbrotParams parameter block group, this double value is used to specify the top edge of the mandelbrot set. This is the maximum imaginary number that the mandelbrot function iterates over.
bottomy
A member of the MandelbrotParams parameter block group, this double value is used to specify the bottom edge of the mandelbrot set. This is the minimum real number that the mandelbrot function iterates over.
max_value
A member of the MandelbrotParams parameter block group, this double value is used to specify the "bailout value" used to calculate the mandelbrot set. If the magnitude of the iterated function Z(n) exceeds this value then the iteration is stopped and number of iterations taken is stored.
max_iter
A member of the MandelbrotParams parameter block group, this int value is used to specify the maximum number of iterations allowed while calculating a point in the mandelbrot set. If the value of Z(n) is below the "bailout value" after the maximum number of iterations then the magnitude of the function is assumed have reached a steady state and therefore no more iterations need to be performed. The maximum number of iterations possible is 255, and values above this level are ignored.
resx
A member of the MandelbrotParams parameter block group, this int value is used to specify the horizontal resolution of the mandelbrot set.
resy
A member of the MandelbrotParams parameter block group, this int value is used to specify the vertical resolution of the mandelbrot set.
out_fld
The most primitive output field of the mandelbrot macro. This contains the mandelbrot set represented as Node_Data combined with a generated uniform Mesh.
out_obj
The directly renderable output field of the mandelbrot macro. This contains DataObjectNoTexture objects that can be rendered by the standard data viewers. The Data Objects are generated directly from the combined Node_Data and Mesh_Unif.
The low-level MandelbrotGen module is used in this User Macro mandelbrot.
An example application MandelbrotEg is provided, which generates a large scale portion of the Mandelbrot Set and displays it using the Uviewer2D standard data viewer.
iac_proj/mandel/mandmacs.v contains the mandelbrot User Macro, the MandelbrotUI UI Macro, and the example application MandelbrotEg V definitions.
The MandelbrotMacs library inherits its process. As this library contains no procedural code, the process is not important. The low-level MandelbrotGen module, executes under the process specified in its library, not the process defined in the high-level library.
Paul G. Lever Andrew Dodd
International AVS Centre Manchester Visualization Centre Manchester Computing University of Manchester Oxford Road Manchester United Kingdom M13 9PL