julia

Synopsis

Generates the julia set.


Parameters

The following lists all of the parameters found in the parameter block JuliaParams, which are accessed by the module JuliaGen and the UI Macro JuliaUI.

mandelx double x coordinate of point on mandelbrot set
mandely double y coordinate of point on mandelbrot set
leftx double left edge of julia set
rightx double right edge of julia set
topy double top edge of julia set
bottomy double bottom edge of julia 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

Output Ports

out_fld Mesh_Unif+Node_Data output field containing Node_Data combined with a generated uniform Mesh.
out_obj DataObjectNoTexture directly renderable output object

Description

The julia module generates data that represents a view of the julia set. The location of a rectangular portion of the julia set, the coordinates of the mandelbrot set it is based upon 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.

Parameters

mandelx

A member of the JuliaParams parameter block group, this double value is used to specify the horizontal coordinate of the mandelbrot set that is used to generate the julia set.

mandely

A member of the JuliaParams parameter block group, this double value is used to specify the vertical coordinate of the mandelbrot set that is used to generate the julia set.

leftx

A member of the JuliaParams parameter block group, this double value is used to specify the left edge of the julia set. This is the minimum real number that the julia function iterates over.

rightx

A member of the JuliaParams parameter block group, this double value is used to specify the right edge of the julia set. This is the maximum real number that the julia function iterates over.

topy

A member of the JuliaParams parameter block group, this double value is used to specify the top edge of the julia set. This is the maximum imaginary number that the julia function iterates over.

bottomy

A member of the JuliaParams parameter block group, this double value is used to specify the bottom edge of the julia set. This is the minimum real number that the julia function iterates over.

max_value

A member of the JuliaParams parameter block group, this double value is used to specify the "bailout value" used to calculate the julia 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 JuliaParams parameter block group, this int value is used to specify the maximum number of iterations allowed while calculating a point in the julia 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 JuliaParams parameter block group, this int value is used to specify the horizontal resolution of the julia set.

resy

A member of the JuliaParams parameter block group, this int value is used to specify the vertical resolution of the julia set.

Output Ports

out_fld

The most primitive output field of the julia macro. This contains the julia set represented as Node_Data combined with a generated uniform Mesh.

out_obj

The directly renderable output field of the julia 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.

Utility Macros

The low-level JuliaGen module is used in this User Macro julia.

Example

An example application JuliaEg is provided, which generates a large scale portion of the Julia Set and displays it using the Uviewer2D standard data viewer.

Files

iac_proj/julia/jul_macs.v contains the julia User Macro, the JuliaUI UI Macro, and the example application JuliaEg V definitions.

Other Notes

The JuliaMacs library inherits its process. As this library contains no procedural code, the process is not important. The low-level JuliaGen module, executes under the process specified in its library, not the process defined in the high-level library.

Authors

Paul G. Lever
Andrew Dodd

Contact

International AVS Centre
Manchester Visualization Centre
Manchester Computing
University of Manchester
Oxford Road
Manchester
United Kingdom
M13 9PL