Help Index
ZPlot Help Index

>>>>> ZPlot 3.19, ©1996 by Terry W. Gintz <<<<<

ZPlot graphs formulas based on 4-D complex number planes.  ZPlot currently supports the Mandelbrot set, Julia sets, and Phoenix curves, with over 500 mapping variations.  Also included are midpoint displacement routines and spherical plots to enhance 3D plots.  The complex math functions supported include sin(z), sinh(z), z^z, e^z, z^n, sqrt(z), cos(z), cosh(z), tan(z), tanh(z), log(z), ln(z), n^z and others, including the gamma and Legendre functions.

Up to two formulas for z using the above functions may be plotted, using traditional rules for generating Mandelbrot sets (Benoit B. Mandelbrot) and Julia sets (G. Julia.)  Also, there are mapping options that use non-traditional methods, such as the epsilon-cross method (Clifford A. Pickover), renormalization and IFS (Michael Barnsley).  Many thanks to Paul Carlson for providing me his algorithms for 3D-like fractals, and allowing me to incorporate his ideas into ZPlot.

Since the formula parser is an interpreter, with its inherent lack of speed, over eighty 'popular' and unusual formulas have been hard-coded to reduce graphing time by 40 to 60 percent.  Several of the built-in formulas are capable of producing graphs that the program could not generate through the parser alone, such as applying the Mandelbrot set to Newton's method for solving quadratic equations.  Also included in the built-in functions are the Quaterion and hypercomplex sets of four dimensions.  Hypercomplex extensions (as described in Fractal Creations) have been incorporated into all of the Mandelbrot and Julia functions except for the Quaterion set(this is itself a special 4D version of the Mandelbrot set z^2+c.)

New in version 3.19 is direct support for many Fractint escape-time functions via a .par file reader/converter.

ZPlot requires an extended SVGA adapter capable of displaying 256 colors.  ZPlot uses a 236 colors palette for plotting, with 20 colors reserved for Windows.

Memory requirements for ZPlot vary with the screen that ZPlot opens on, ranging from approximately 800 kbytes free-memory for a 256 color 640X480 screen to 1.8 Megabytes for a 1024X768 screen.

If you need additional help with any of the  topics below, click on the underlined keyword.  For a reference to supported functions, built-in functions, hot keys and constants used in ZPlot, select quick reference.  For better understanding of ZPlot, a list of reference material is available through Bibliography.

Windows

Main Window

File Window

Formula

Parameters

Menus

PROJECT MENU	The Project menu contains options for saving and loading functions, creating new functions and continuing or starting a new plot.

New Plot

Reset

Zoom In/Out

Show Picture

Continue Draw

Load Function/Palettes

Load Par File

Save Function/Palettes

Print Bitmap...

Print Function Data

ExitExits ZPlot.

About ZPlotAuthor and version  information for the program ZPlot.

EDIT MENU	The Edit menu contains options changing the function's formula/type, parameters and color palette.

Formula

Parameters

Edit Palette

IMAGE MENU	The Image menu determines which one of four functions is being operated on.  ZPlot allows you to save up to four functions in one file, so that you can work on different sectors of a screen or 3D backgrounds without losing track of the functions that generated each portion of the screen.

Figure #1

Figure #2

Figure #3

Figure #4

TYPE MENU	The Type menu determines the basic mapping algorithm for the plot, either Mandelbrot or Julia, although there are other types available such as Phoenix curves or IFS that have very little relationship to the basic type chosen.

Mandelbrot0

MandelbrotP

Julia

JuliaTower

MAP MENU	The Map menu selects the mapping mode that is used to set the iteration break point for the plot.  For Mandelbrots and Julia sets this is normally the absolute value of Z.  For exponential  or transcendental Julia sets, you may want to select the real value of Z, or the imaginary value of Z.

Z-Real

Z-Imag

Abs(Z-Real)

Abs(Z-Imag)

Abs(Z-Real) + Abs(Z-Imag)

>Abs(ZReal) or (Z-Imag)

<Abs(ZReal) or (Z-Imag)

Abs(Z)

FLAGS MENU	The Flags menu allows you to set extensions on the basic plot type, such as using Norton's method to map a Julia set , or binary decomposition for enhanced detail.  Not all of the flags work together, and some flags turn off other flags(when noted as mutually exclusive.)

Biomorph

Boundary Scan

Orbit Traps

Level Curve

Set Only

Newton Set

Newton Off

Renormalization

Convergence

Bioconvergence

Period Check

Decomposition

Switch

Spin

Phoenix

Invert

Solid Guessing

Tesseral

Split Palette

Picks Slice

Default Function

Auto Aspect

Auto Save

Backup Copy

Auto Warn

Auto Alert

COLOR  SCALING MENU	The Color-Scaling menu determines how ZPlot colors each point of a plot.  This can be based on a modulus (repeating) color table and escape times, or a graded (non-repeating) color table.  The level options create a logarithmic color table.  For 2D plots all colors in the current color table are used to map each point.  For 3D plots, the upper three quarters of the color table are used for foreground plots, and the first quarter of the color table is used for backgrounds.  This allows some color independence between hills and sky, etc.

Excape Modulus

Log Modulus

Escape Graded

Continuous Potential

Log Graded

Background

Use Level Curve

3D SCALING MENU	The 3D Scaling menu selects the type of three-dimensional mapping a plot will follow with the 3D Plot button selected in the New Function window.  This can be logarithmic, high or low potential, or continuous potential, with the set potential as a variable.

Log High

Log Low

Continuous Potential High

Continuous Potential Low

HELP MENU

Help Index  calls on WinHelp to display this help index for ZPlot.  Context Help is available for all menus by depressing F1 while any menu item is highlighted.


Getting Started

Welcome to ZPlot 3.19!

This is a short tutorial which will cover the basic commands in ZPlot necessary for a new user to create an initial picture.  For help on any menu command, press shift-F1 while the command is highlighted.  For help on the Edit Formula or Parameters window, click on the Help button inside that window.

Since most fractaliers are initially interested in the Mandelbrot set, we will begin there.  ZPlot opens with a 3D rendition of the entire Mandelbrot set, with a random sky as a background and a chaos moon.

We're first going to generate a two-dimensional version of the Mandelbrot set, then redraw it as a 3D plot and sky.

If you open the Parameters window through the Edit menu, you will notice buttons near the bottom of the window labeled 3DPlot, 3DBack and Okay.  If you click on Okay(but not just yet), a two-dimensional plot of the Mandelbrot set will be drawn.  First click on the Size slider carat and (holding the left mouse button down)drag it to the left  until the value is something less than full-screen, say 250.  Alternately, you can click to the left of the carat and the size will decrease by 4 with every click.  Clicking on an end arrow changes the size by one.  This works for all the sliders too.  Next, delete the value in the Cutoff/Slope box by clicking in it and using the delete or backspace buttons.  Enter 0.1 in the Cutoff box.  For 2D plots the cutoff value acts as a color multiplier or divider on the entire palette.  This speeds up or slows down changes in color.  With a value of .1 the palette is cycled through ten times the normal rate, so stripes of color are quite noticeable on a Mandelbrot plot with escape-time coloring.

Now click on Okay.  ZPlot's main window will be erased and a small plot of the Mandelbrot set will be drawn in the center of the ZPlot window.  Go back to the Parameters window now and move the Sector to a value of 2.  Press Okay.  The right upper quarter of the window will be erased and the same Mandelbrot set will be drawn there.  You can experiment with sector values 1-4 also.  Each sector value puts the plot in a different quarter of the window.  This works as long as the Size value is one-half of the full-screen horizontal size or less.  A size above that forces ZPlot to plot a 2D picture in the center of the screen and change the sector to 0.  You want to use sectors and smaller plot sizes to save time and when zooming out or framing.

Change the size to anything above the full-size screen resolution, then click on Okay.  ZPlot limits a 2D plot size to full-screen resolution so a full-screen rendition of the Mandelbrot set will be drawn.  Clicking the mouse button inside the plot zone or pressing a key(other than the hot keys) stops the plot.  You can continue the plot later by using the Continue command off the Project menu, or the Continue button in the Parameters window.  Some commands disable the continue feature, as when changing to Solid-Guessing or Tesseral as a plot mode.  These use a different plotting mode, incompatible with the default single-pass mode in ZPlot.

If the Auto-Alert option is enabled(on by default), ZPlot will give an audible sound when the plot is completed.  The sound may be customized via the Sounds editor in the Windows 95 control panel.  The plot-complete alert uses the Exclamation sound.

You'll probably be doing a lot of zooming and framing on your plots later, so we'll cover that briefly here.  After the full-screen version of the Mandelbrot set is finished(or as much of it is finished that you want to zoom in on), select the Zoom In/Out command off the Project menu.  A box a quarter the size of the window will appear that you can move around with the mouse.  Hold the left-mouse button down to shrink the box, or the right-mouse button down to expand the box.  Move the box over the area you are zooming in on, size the box if necessary and when it includes the details you want, press the space bar.  The plot will be redrawn at zoom scale.  To zoom out, you need to draw a smaller size plot, then zoom using a box larger than the plot drawn.

Redrawing the title picture:  reload the title picture by using the Load command on the Project menu, and double click on title.zp.  Use the Clear Screen command, shift-C to erase the screen.  Now use the New command on the Project menu to redraw the 3D part of the title picture.  The picture starts drawing at the bottom left corner of the main window, so the initial drawing is obscured by the Windows 95 command bar, and the fact that during drawing the ZPlot title bar is always there moving the plot down by its width.  To see the initial drawing, stop the plot and use the Show Picture command on the Project menu.  This displays all the plot without any title bar or command bars obscuring it.  Initially only a small dark triangle will be present at the bottom left corner of the window.  You'll notice as the plot progresses, diagonal bands of varying heights and colors add to the plot.  ZPlot uses a 3D projection method similiar to Fractint's height fields.  ZPlot has the capability to produce seamless 3D pictures by cropping the plot at the corners and adding an horizon at the top of the plot.

Next, change the image drawn via the Image menu to Figure 2.  Use the New command to redraw the chaos moon.  The spherical plot is drawn with arcs from left to right.

The last part of the title picture involves redrawing the random sky background.  Change the image to Figure 3.  Click on Continue in the Parameters window.  (If you used the New command, a new background would be generated, different from the saved title.)  ZPlot allows you to redraw random backgrounds by saving the random seed that produced them, but you have to use the Parameters Continue button to do so, as the Continue command is disabled when you change images.

This completes the Getting Started tutorial.  Be sure to read the quick reference for info on hot keys, color cycling, and builtin functions.  The Help Index contains comprehesive info on ZPlot and system requirements.  The Bibliography lists additional reference material for a better understanding of the fractal types and functions contained in ZPlot.


Bibliography

COMPLEX MATHEMATICS

Churchill, Ruel.V. and Brown, James Ward: "Complex Variables and Applications", Fifth Edition, McGraw-Hill Publishing Company, New York, 1990.

Korn, Granino A. and Korn, Theresa M.: "Manual of Mathematics, McGraw-Hill Publishing Company, New York, 1967.

FRACTAL THEORY

Barnsley, Michael: "Fractals Everywhere", Academic Press, Inc., 1988.

Devaney, Robert L.: "Chaos, Fractals, and Dynamics", Addison-Westley Publishing Company, Menlo Park, California, 1990.

Mandelbrot, Benoit B.: "The Fractal Geometry of Nature", W.H.Freeman and Company, New York, 1983.

Peitgen, H.-O. and Richter, P.H.: "The Beauty of Fractals", Springer-Verlag, Berlin Heidelberg, 1986.

FORMULAS AND ALGORITHMS

Burington, Richard Stevens: "Handbook of Mathematical Tables and Formulas", McGraw-Hill Publishing Company, New York, 1973.

Kellison, Stephen G.: "Fundamentals of Numerical Analysis", Richard D. Irwin,Inc. Homewood, Illinois, 1975.

Peitgen, Heinz-Otto and Saupe, Deitmar: "The Science of Fractal Images", Springer-Verlag, New York, 1988.

Pickover, Clifford A.: "Computers, Pattern, Chaos and Beauty", St. Martin's Press, New York, 1990.

Stevens, Roger T.: "Fractal Programming in C", M&T Publishing, Inc.,Redwood City, California, 1989.

Wegner, Tim, Tyler,Bert, Peterson, Mark and Branderhorst, Pieter: "Fractals for Windows", Waite Group Press, Corte Madera, CA, 1992.

Wegner, Tim and Tyler, Bert: "Fractal Creations", Second Edition, Waite Group Press, Corte Madera, CA, 1993.

Whipkey, Kenneth L. and Whipkey, Mary Nell: "The Power of Calculus", John Wiley & Sons, New York, 1986.


Quick Reference

Functions (capital letters are optional, and parenthesis are necessary around complex expressions)

The following information takes the form "standard function" ---"form used by ZPlot to represent standard function".

sin z --- sinz or SIN(Z)     ; where Z can be any complex expression

sinh z --- shz or SH(Z)

cos z --- cosz or COS(Z)

cosh z --- chz or CH(Z)

tan z --- tanz or TAN(Z)

tanh z --- th or TH(Z)

w^z --- wpowz or (W)POW(Z) or (w)^(z)  -- where z is the complex exponent and w may be any complex variable or expression

n^z --- npowz or (N)POW(Z) or (n)^(z)  -- where n is a real variable or expression

e^z --- expz or EXP(z)  -- the exponential function

log z --- lnz or LN(Z)       -- natural log of z

log10 z --- logz or LOG(Z)   -- log of z at base 10

abs(w) --- absw or ABS(W)     -- absolute value of complex term W

sqrt(z) --- sqrz or SQR(Z)    -- square root [actually ZPOW(.5)]

Math operators

+ --- +  addition

- --- -  subtraction

* --- *  multiplication

/ --- /  division

Constants and variables

i  --- i or I  -- square root of -1

e  --- e or E  -- 1e^1 -- 2.71828...

pi --- pi or PI -- 3.14159...

complex constant --- c or C

complex conjugate (conj)--- cc or CC

conjugate of z -- zc or ZC

p --- p or P  -- real constant used in phoenix maps; uses the real part of the complex constant when the Phoenix option is chosen

q --- q or Q  -- real constant used in phoenix maps; uses the imaginary part of the complex constant when the Phoenix option is chosen

z --- z or Z  -- function value at any stage of the iteration process

zn --- zn or ZN -- the value of z at the previous stage of iteration

zr --- zr or ZR -- reciprical of z, 1/z

r --- r or R  -- absolute value of Z

x --- x or X  -- real part of Z

y --- y or Y  -- coefficient of the imaginary part of Z

j --- j or J  -- real part of the complex constant

k --- k or K  -- coefficient of the imaginary part of the complex constant

Note:  j and k are the actual values of the complex constant terms as they are used in the iteration process, so will vary when the Mandelbrot option is used.

s -- s or S -- the constant entered in the S gadget

si -- the constant entered in the Si gadget (only used with built-in functions.)

a -- the constant entered in the Arg gadget (only used with built-in functions.)

limit -- the constant entered in the Limit gadget (only used with built-in functions.)

Hot keys

F1-F9,F11, 0-9 --- change to one of 20 color palettes -- useable during plotting.

F12 holds the palette of the most recently loaded function.

left arrow --- forward cycle all colors, except set color, one step -- useable during plotting.

right arrow --- back cycle all colors, except set color, one step -- useable during plotting.

Enter(Return) --- forward cycle all colors, except set color and background, one step -- useable during plotting.

Backspace --- back cycle all colors, except set color and background, one step -- useable during plotting.

up arrow --- forward cycle colors one step, including set color -- useable during plotting.

down arrow --- back cycle colors one step, including set color -- useable during plotting.

Page Up -- forward cycle first quarter of colors (for 3D backgrounds) -- useable during plotting

Page Down -- back cycle first quarter of colors (for 3D backgrounds) -- useable during plotting

Home --- scramble palette by splitting palette and  recombining -- nth color is followed by n+(colors/2) color  -- useable during plotting.  For 3D plots, only upper three quarters of colors are scrambled.

End --- scramble palette by switching every 10th color with the color 10 colors behind it -- useable during plotting.  For 3D plots, only upper three quarters of colors are switched.

Insert ---  forward cycle upper three quarters of colors (for 3D foregrounds) -- useable during plotting

Delete ---  back cycle upper three quarters of colors (for 3D foregrounds) -- useable during plotting

S --- quick save (function and  bitmap screen) to TEMPPLOT.ZP

Q --- restore (function and  bitmap screen) from TEMPPLOT.ZP

F --- quick save (function only) to FUNCTION.ZP

R --- restore (function only to current figure only) from FUNCTION.ZP

P --- grab point (real and imaginary parts) and put values in complex constant

C -- clear the screen to the current background color

B -- erases the 3D background, leaving the 3D plot intact.

Z -- zoom in/out coordinates.  Like the menu command except does not immediately redraw the picture.  This allows you to zoom into another screen sector (see Parameters Window) without erasing the previous picture.

O -- displays a small box at the cursor.  The angle of the box matches the angle of rotation currently in use.  Hold down the left-mouse button to rotate the box counter-clockwise, the right button to rotate clockwise.  Useful for determining the exact angle needed to rotate a picture that lines up oddly.  Note: the angle you get after rotating the box is how much the picture will be rotated using the Rotate flag, but not necessarily how much the picture needs to be rotated.  You may need to make the Rotate angle negative (in the New Function window) to get the correct result.  (What you are looking at is how much the picture is tilted off the horizonal, if you match the box's horizontal edge to a fractal edge in the picture.)  The box follows the mouse.  To exit this routine, click anywhere in the title bar.

Built-in Formulas (enter the following prefix into the Function #1 or Function #2 edit boxes)

p0 -- z^2+c --- the standard Mandelbrot or Julia set

p1 -- cz(1-z) --- the self-squared dragon set

p2 -- c(z-1/z) --- alternate Mandelbrot or Julia set

p3 -- cz^2-1 --- alternate Mandelbrot or Julia set

p4 -- c^2/(c+z^2) --- alternate Mandelbrot or Julia set

p5 -- z^3+c --- cubic Mandelbrot or Julia set

p6 -- ((z^2+c-1)/(2z+c-2))^2 -- renormalization formula #1 for x-plane or q-plane pictures (Note 9)

p7 -- z^2+j+kzn --- Phoenix curve (Ushiki).  Uses Fractint extentions for degree(>2 or <-3.)

p8 -- Julia/Mandelbrot set (modified from M. Barnsley)

p9 -- fn(z)-cfn(z) -- generalized frothy basin (J. Alexander.) (Note 7)

r0 -- Newton/Halley map of z^3+conj(z)c -- exploratory function based on modified frothy basin.

r1 -- z^z+z^s+c --- Biomorphs, etc; s may be complex using the si variable as its imaginary component

r2 -- z^s-z+c --- Biomorphs, etc; s may be complex using the si variable as its imaginary component

r3 -- fn(z)+exp(z)+c -- Biomorphs, etc.

r4 -- solves Newton/Halley transformation of (z^2-c)(z+1).  (Notes 3,4,5,11)

r5 -- cfn(z) -- transcendental Julia curve, etc.

r6 -- cexp(z) -- exponential Julia curve, etc. with additional plane checking when real value of Z exceeds 50.  If cos(imag-Z) >= 0, point is considered part of Julia set.

r7 -- fn(z)+cfn(z)+1 -- generalized form of t9.

r8 -- foggy coastline #1 Mandelbrot IFS  (M. Barnsley) (Note 14)

r9 -- foggy coastline #2 Mandelbrot IFS  (M. Barnsley) (Note 14)

e0 -- solves Newton/Halley transformation of (z+j)(z+k)(z^2+1) for either Julia or Mandelbrot set.

e1 -- solves Newton/Halley transformation of (z+j)(z^2+z+k) for Mandelbrot and Julia set.

e2 -- solves Newton/Halley transformation of (z-1)(z^2+z+c) for either Julia or Mandelbrot set.

e3 -- solves Newton/Halley transformation of (z+j)(z+k)(z+1) for either Julia or Mandelbrot set.

e4 -- Chaos Game Julia IFS (M. Barnsley)

e5 -- snowflake Julia IFS (as described in Fractals Everywhere by M. Barnsley)

e6 -- solves Newton/Halley transformation of logz-c.

e7 -- solves Newton/Halley transformation of exp(z)-c.

e8 -- solves Newton/Halley transformation of (z-c)(z+1)(z-1) for Mandelbrot or Julia set.

e9 -- solves Newton/Halley transformation of (z-c)(z+c)(z^2+c^2) --- z^4-c^4.

s0 -- solves Newton/Halley transformation of sinz-c

s1 -- sexpz+c -- transcendental Mandelbrot or Julia set

s2 -- c(1+z^2)^2/(z^2-1)  -- alternate Mandelbrot/Julia set

s3 -- solves Newton/Halley transform of tan(z)-c

s4 -- IFS (x=sy+j,y=-sx+k (x>0); else x=sy-j,y=-sx-k (modified from M. Barnsley) (An alternate version of this formula is executed when the limit value is non-integral.)

s5 -- solves Newton/Halley transform of z^s-1 (Julia set only)

s6 -- composite function cz-c/z & z^2+c (C. Pickover)

s7 -- transcendental function fn(z)+c

s8 -- ((z^3+3(c-1)z+(c-1)(c-2))/(3z^2+3(c-2)z+c^2-3c+3))^2 -- renormalization formula #2 for x-plane or q-plane pictures

s9 -- Newton/Halley map of z(z^limit-1) (Julia set only)

t0 -- Newton/Halley map of z(z^limit-c) (Julia or Mandelbrot set ; display method 2 default; limit>=1.0 ; use 1.0 for initial z with Mandelbrot0 type, or use MandelbrotP type.)

t1 -- Newton/Halley map of Chebyshev function cos(n*arccos x)

t2 -- Newton/Halley map of Hermite polynomial: 16x^4-48x^2+12

t3 -- alternate Newton/Halley map of tanz-c (Julia or Mandelbrot set.)  the twist is in the second derivative of the Halley type.

t4 -- Newton/Halley map of z^limit-c (Julia or Mandelbrot set ; display method 2 default; limit>=1.0 ; use 1.0 for initial z with Mandelbrot0 type, or use MandelbrotP type.)

t5 -- fn(fn(z))+c -- user-defined complex set.  When the first function is z^2 and the second function is conj(z), this becomes the z-conjugate set, zz^2+c, the tricorn set. (Note 12)

t6 -- Volterra-Lotka equations discretized by modified Huen method (from The Beauty of Fractals)

t7 -- c^z+c -- tetration of z

t8 -- q^2+c -- Quaternion set (from Computer, Pattern, Chaos and Beauty) (Note 8)

t9 -- z+cz+1 --try with Newton's method applied.  A buggy algorithm found this one.

a0 -- spiral network -- C. Pickover

a1 -- z-(1/z+c) -- try with renormalization applied.  Sequel to t9.

a2 -- fn(z)-(fn(z)+c) -- generalized form of a1

a3 -- alternate Newton/Halley map of sinz-c.  see t3 variant.

a4 -- user-defined complex set: fn(z)+fn(z)+c

a5 -- hypercomplex Newton/Halley map of h^3+c

a6 -- Hypercomplex Newton/Halley map of fn(h)+c

a7 -- user-defined complex set: fn(z)+fn(c)

a8 -- fn(z)+zn+c -- from Fractal Creations

a9 -- q^3+c -- cubic Quaternion set

b0 -- alternate Newton/Halley map of exp(z)-c.  as for t3 variant.

b1 -- alternate Newton/Halley map of log(z)-c.

b2 -- Newton/Halley map of phoenix curve.

b3 -- cfn(z)+zn -- user-defined complex formula.

b4 -- fn(z)+kzn+j -- generalized phoenix curve formula.

b5 -- fn(z) a preformula for use with type 3 composite fractals.  uses limit gadget to select function.

b6 -- Newton/Halley map of fn(z)+fn(z)+c

b7 -- Newton/Halley map of cfn(z)

b8 -- fn(z)*fn(z)+c

b9 -- Newton/Halley map of foggy coastline #1

c0 -- Newton/Halley map of foggy coastline #2

c1 -- Newton/Halley map of fn(fn(z))+c

c2 -- cfn'(z), where fn'(z)=first derivative of user-defined function.

c3 -- fn(z)+fn'(z)+c

c4 -- fn'(z)+fn(c)

c5 -- fn(fn'(z)))

c6 -- first order gamma function: (z/e)^z*sqr(2*pi*z)+c

c7 -- Newton/Halley map of fifth degree Legendre polynomial: 1/8(63z^5-70z^3+15z; display method 2 default.

c8 -- (z^2+e^(-z))/(z+1): second-order convergence formula for finding root of ze^z-1=0

c9 -- Newton/Halley map of fn(z)*fn(z)+c

d0 -- z^s/limit+c: anti-derivative of z^n; s may be complex using the si variable as its imaginary component

d1 -- Sterling expansion of gamma function: (z/e)^z*sqr(2*pi/z)+c

d2 -- Newton map of fn'(z)-fn(z)+c: generalized first degree Laguerre polynomial.  Newton map only.  (Note 13)

d3 -- fn(1/(fn(z)+c))

d4 -- z^2-c; where zreal=abs(zreal)(Paul Carlson's "alien" julia set)

d5 -- z^2; where zreal=abs(zreal)-cr, zimag=zimag-ci (Paul Carlson julia set)

d6 - cfn(z)+c

Note 1: click on the Evaluate gadget to see a brief description of the built-in formula entered in the Function #1 or #2 edit boxes.

Note 2: all pertinent menu flags must be set for built-in functions to work as described.

Note 3: Halley map requires the Newton flag to be set.  This is another numerical approximation method for finding complex roots.  For all Newton/Halley functions, the Newton map is the default.  The Halley option is specified through the Arg Gadget, the second character being  set to 'h', after the display method(1-8).   E.g. '1hr' would designate a relaxed Halley map with display method 1.

Note 4: Halley and Newton maps can use one of nine display methods:

#1 (the default mode, except for functions using sinz, expz, logz and tanz, or fn(z), which default to method 2, and don't use methods 1,4 or 5): ---colors represent the root(the zero) which a point converges to.

#2 (if the Arg Gadget is set to 2, or for functions of sinz, tanz, logz, expz, and fn(z)): ---colors represent the number of iterations a point takes to converge.

#3 (if the Arg Gadget is set to 3) -- colors represent the number of iterations a point takes to converge according to an alternate formula described by C. Pickover in Computers, Pattern, Chaos and Beauty.

#4 (if the Arg Gadget is set to 4) -- a merging of methods 1 and 3.  After the point converges according to the alternate formula #3, its roots are colored according to #1.

#5 (if the Arg Gadget is set to 5) -- a variation of method 1, with double-convergence checking inside the loop.

#6, #7 and #8-- alternate convergent formulas.

#9 -- a variation of method 3, with double-convergence checking.

Note 5:  An addional third argument that affects the convergence speed of Newton/Halley maps may be one of the following five methods:

   'r': relaxed Newton method uses the formula z = z-sf(z)/f'(z).

   'm': modified Newton transformation uses the formula: z-(f(z)/(f'(z)+si)).

   'd': relaxed modified Newton method uses the formula: z-(sf(z)/f'(z)+si)).

   'p': premodified Newton transform uses the formula: sz-(f(z)/f'(z)).

   'c': complex Newton transform uses the formula : z-(f(z)/(f'(z)+c)), where c is the complex constant.

The s constant is entered via the S gadget.

Note 7: the term 'fn(w)' represents any one of 41 user-defined functions chosen through the f1 gadget:

0: sin(w)	1: sinh(w)	2: cos(w)	3: cosh(w)

4: tan(w)	5: tanh(w)	6: exp(w)	7: ln(w)

8: w^c	9: w^z	10: 1/w	11: w^2

12: w^3	13: abs(w)	14: sqrt(w)	15: w

16: conj(w)	17: csc(w)	18: csch(w)	19: sec(w)

20: sech(w)	21: cot(w)	22: coth(w)	23: cw

24: 1	25: arsin(w)	26: arcsinh(w)

27: arccos(w)	28: arccosh(w)	29: arctan(w)

30: arctanh(w)	31: arccot(w)	32: arccoth(w)

33: vers(w) 	34: covers(w)	35: L3(w): 3rd degree Laguerre polynomial	36: gamma(w): first order gamma function

37: G(w): Gaussian probability function -- (1/sqr(2pi))*e^(.5w^2)

38: c^(s+si)	39: zero	40: w^(s+si)

When two user-defined functions appear in a function, the f2 gadget supplies the second function type, except as noted below for IFS plots.  For Newton/Halley maps involving z^z, the first derivative is defined as z^z*(1+ln(z)).  An alternate derivative formula(z*z^(z-1)) is used when a non-integral value is entered as an arg limit(e.g.: 0.1).(This produces interesting effects, though mathematically inaccurate.)  For IFS plots(type 2), fun#1 takes its function from f1 and fun#2 takes its function from f2.  For this to work, the two builtin functions may not have more than one user-defined function in each of them.

Note 8:  The quaternion and hypercomplex functions use the complex c gadgets to input cr, ci, cj and ck.  These may be zero when generating a Mandelbrot-like set of these functions.  Julia sets may then be mapped by grabbing points(cr,ci) from interesting areas near this set.  Cj and ck must be entered manually for Julia sets.  The hj and hk gadgets are used to input the z and w coefficients of the j and k planes.  Use small amounts to start for these variables (0-1.0.)  Values of 0 for hj,hk,cj and ck result in a two-dimensional slice that matches the standard (non-hypercomplex) type.  Higher values of z and w(as well as cj and ck) produce more pronounced asymmetry in the complex mapping.

Note 9:  Renormalization functions use the Arg Gadget for plotting options (1-4,6-8) as follows:

0 or 1:  default renormal, with anti-ferromagnetic points mapped only for Julia sets.  Paramagnetic points(those converging to 1) and ferromagnetic points(those escaping to infinity) are mapped for both Mandelbrot and Julia sets.

2:  anti-ferromagnetic points are mapped for the Mandelbrot set.  This is actually a level-set mapping for points that do not escape to infinity or converge to 1.

3:  uses an alternate convergence formula for paramagnetic and anti-ferromagnetic points.

4:  a combination of methods 0 and 3, with characteristics of both methods appearing in plot.

6-8: alternate convergence methods, same as those used with Newton/Halley maps

An optional argument for renormalization 'n' follows the convergence method.  This is an alternate bailout method for ferromagnetic points.

Note 10: Most of the built-in functions have hypercomplex extensions when values of cj, ck, hj or hk are non-zero.

Note 11:  Hypercomplex Newton/Halley maps use only type 2 and type 3 convergence tests.

Note 12:  The default version of hypercomplex conjugate is defined as conjugate(h)=hr-hi-hj+hk.  A variant of the hypercomplex conjugate uses an arg limit with a non-integral value(e.g.: 2.1.)  This makes all imaginary components of h negative, such that conjugate(h)=hr-hi-hj-hk.

Note 13: The formula for a first degree Laguerre polynomial is e^t(d/dt(t/e^t))=d/dt(t)-t.

Note 14: With a non-integral value entered in the limit gadget, an alternate (Fractint) version of this formula is executed.


Main Window

Besides providing a platform for all the complex plots ZPlot is capable of drawing, there are a number of menus and hotkeys available from the main window.  A status window at the bottom of the main window identifies menu choices or displays a list of hot keys.

Select a color palette from twenty standard palettes, using number keys 0-9 and function keys F1-F9 and F11.  You can change colors while plotting or viewing the plot.   Note:  F12  contains the palette of a plot that has just been loaded. (F10 is a Windows hot-key for menu access.)

Cycle the selected color palette using the direction keys or the Page Up and Page Down keys.  The up and down keys cycle all the colors  forward or backward one step at a time.  The right and left keys cycle all but the set color forward or backward.  The Page Up and Page Down keys cycle the first quarter of the palette colors(for 3D backgrounds.)  The insert and delete keys cycle the upper three-quarters of the palette colors (for 3D foregrounds.)  You can cycle colors while plotting or viewing the plot.  When you select a color palette, using a function key or number,  the previous palette is restored to its original color positions.

The Home and End keys scramble the palette in different ways.  The Home key does a modulus 2 on the current palette, while the Home key switches colors of a palette every 10 colors.  For 3D plots, only the upper three-quarters of the color palette is scrambled.

'S' is used to quick save a plot to "TEMPPLOT.ZP" and "TEMPPLOT.BMP", in the current file directory.  This saves all the plot variables and the current plot picture without going through the file menu.  'Q' restores a plot that has been quick saved through 'S'.   'S' and 'Q' are useful when used with the 'P' option described below, or when you want to try something different to a plot without losing the current parameters.

'F' is used to quick save a plot to "FUNCTION.ZP" in the current file directory.  This saves all the plot variables but not the current plot picture without going through the file menu.  'R' restores the working figure from a function that has been quick saved through 'F' to the current figure only.  The other figures for the current file are unchanged   'F' and 'R' are useful when you want to build a set of pictures using the same or different functions without erasing the current bitmap or other (non-working) figures.

'P' is used to select a point from a 2-D plot and places its real and imaginary coordinates into the complex variable's real and imaginary parts.  This is useful when using a Mandelbrot set to map various Julia sets.  Pressing 'P'  changes the cursor to a '+'  with which you select the point by using the left-mouse button.

'Z' turns on zoom mode without redrawing the picture immediately.  This allows you to easily create successive zooms in different sectors of the screen.


File Window

The file window displays a list box of the selected directory, which may then be used to save or load functions.  The standard extension "*.ZP" identifies ZPlot data files.  You click on a directory in the list box to move to another directory.  It is not necessary to type the complete path name to load a file from a directory other than the current one.

After entering a file name or wild card in the file box, you click on the Load or Save button to  perform the desired operation.  If the file box contains a wildcard, the specified files or directory is displayed in the list box.   If the file box contains a valid file name, the specified operation is executed.  The file window will close then.  You click on the Cancel button to quit the file requester without executing a file operation.


Formula Window

Fun #1 and Fun #2 are combo controls for entering/selecting up to  two formulas in the form of AZ+BZ+c.  Z is the complex variable or function, 'c' is the complex constant, and A and B are optional real constants.  There are additionally a Type control, an Arg control and a Arg Limit control, that determine how the above formulas are processed.

The Type control accepts a value of 0 to 8.  For a value of 0, the first formula is always used and the second formula is ignored.  For a value of 1, the second formula is processed and the first formula is ignored.  Type 1 is of use only if you are switching between two functions and don't want to reenter them each time you plot the other one.  For a value of 2, the first formula is processed if the Arg value (another formula which must contain only real terms) is greater than or equal to the arg limit set with the Limit gadget.  For values of 3, the first formula is processed and its output becomes the input of the second formula, which is then processed.  For fractals that are non-convergent types, this produces a composite function (a function of a function.)  For Newton types and other convergent fractals, this produces an union of both functions.  Convergence may occur with either of the functions (if both are convergent.)

For a value of 4, the type works like 0 but a sphere is drawn instead of a 2D plot (when the Okay button is selected; otherwise works like type 3.)  For a value of 5, a random fractal based on the midpoint displacement algorithm is drawn.  This can be used to create a cloudy 3D background or a 2D or 3D landscape.

Type 6 also works like 0 but imposes a more rigid overflow checking on some of the complex functions.  The default overflow checking assigns a high number to z when values for z become impossibly large(such as dividing by 0 or exp(z) where z>100.)  The iteration loop is allowed to continue(though most often this assignment causes a break in the loop.)  Type 6 considers an overflow an error condition, and breaks the iteration loop as soon as the overflow appears.  The value of z is then zeroed for coloring purposes.

Types 7 and 8 are exploratory feedback types using the results of two formulas run consecutively.  Type 7 is an 'or' function, where formula 1 and formula 2 are iterated from the same starting point, and the results of one formula is used for coloring purposes.  The criteria used for selecting which formula to use differs depending on if the first formula is convergent or not.  If the first formula is convergent, then if its convergent time is less than the escape or convergent time of the second formula then use the first formula's results, else keep the last formula's results.  If the first formula is non-convergent, then if its escape time is greater than that of the second formula then use the first formula's results, else keep the last formula's results.

Type 8 pipes the results of the first formula into the second formula and uses the results of the second formula.

Built-in functions can be used with types 0-4 and 6-8.

When you select a function from the fun #1 list box, a thumbnail pic appears at the lower left of the dialog window.  This shows some of the aspects of the formula chosen.  Click on the Use Example button to transfer the data that created the pic to the current image data.  You can then see how the pic was done, draw it full-screen, zoom on it and/or play with its parameters to create new versions of the pic.  The thumbnail pics are shown in 16 colors only, so a full-screen version in 236 colors shows a lot of detail missing in the thumbnail.

To accommodate the Arg function, there are special variables, which the program treats as strictly real values.  'X' is the real value of Z.  'Y' is the coefficient of the imaginary part of 'Z'.  'R' is the absolute value of Z.  'J' is real part of the complex constant.  'K' is the coefficient of the imaginary part of the complex constant.  These and other real variables described below can be used in the Arg input, to create IFS maps of complex functions, as described by Michael Barnsley in his book, Fractals Everywhere.

Note: Using the Arg gadget for type 2 functions is unnecessary when using one of the built-in IFS functions.  The Arg gadget is used in builtin functions to specify the display method for newton/convergence functions.  For more info on how to set Newton/Halley/Renormalization flags with the Arg gadget, see the notes at the end of quick reference.

The f1 and f2 combo boxes are used with the builtin functions to designate the 'fn' user-defineable part of a generalized function.  This can be one of the 38 function types listed(sin(w),cos(w) etc.) A few of the options are formulas themselves(L3(w) the Legendre function, the gamma function and G(w)the Gaussian function), so quite complex (though mathematically unintelligible)formulas are possible.

The S control is used to enter the variable 's' used in many of the built-in functions.

The Si control is used to enter the variable 'si' the imaginary component for s in some of the built-in functions.

The CL control is used to enter the convergence limit for Newton/Renormalization/Convergence plots.  This is a measure for how close z needs to approach an attractor to be mapped to that attractor color.  A small value .0001-.000001 is used.

About function syntax:  This applies if you elect to enter your own formula into one of the function boxes and use the parser to generate the plot(slower than builtin functions.)  The power function 'x^y' is entered as: 'x^y' or 'xpowy', where y is the exponent, and the variable x may be any complex variable.  The exponential function 'e^z' is entered 'exp(z)' or 'epowz.'  The function 'z^z' is entered 'zpowz' or 'z^z.'  'z^#' or 'e^#' are also valid entries for the power function, where '#' is any real exponent.  The use of parenthesis is necessary around complex exponents or variables. E.g. :  '(z-i)pow(1.5e)'.  Other functions, such as sin(z), abs(z), cos(z), log(z) and ln(z) are entered algebraically, with optional parenthesis.  Additional variables that may be used for functions include 'c' -- the complex constant, and 'cc' -- the complex conjugate.  Up to 80 characters may be used in either formula.  Combining both edit controls, up to 160 characters may be used for a formula using the Code 3 option.  The arg control is limited to 25 characters.

Click on the Okay button to use the formulas currently displayed in the window, or Cancel to exit the window without making any changes.

The Reset button returns all boxes and slider values to their original values when the window was opened.


Parameters Window

There are edit controls for entering the complex constant (real and imaginary parts), and the min/max ranges for the real and imaginary window coordinates.  Zplot 3.16 now uses three-corner plotting for easier rotating, so boxes are provided for Top Left, Top Right and Bottom Right real/imaginary coordinates.  These reflect the current range values that may have been derived from zooming with the Zoom option.  Slider-type controls affect the number of iterations(10-9999), the z-limit(1-200).  Cj, ck, hj and hk are for entering hypercomplex parameters.  Cx,cy,cz and cw are used as complex C increments for Julia-Tower types.  The Size slider controls the overall size of the picture.  The horizontal resolution is set by the Size slider, while the vertical resolution is then scaled according to the full-screen VGA ratio, 1.333333 to 1.  The Sector slider controls which of 4 sectors the picture will be drawn in, if the Size is less than or equal to (the full-screen horizontal  resolution)/2.  Otherwise the picture is centered according to the full-screen dimensions.  This allows you to show zooms of a particular function by using different sectors, or show the affect of different plotting options.  Each sector is erased individually.  Note: if you try to continue a plot in a different sector than you started with, the plot will continue in the original sector.

The more iterations used, the longer it takes to plot a function, but more detail will be present.  10-20 is sufficient for most biomorphs, while more iterations will be required for Mandelbrot and Julia sets, depending on the detail required.

Zooming is not available while plotting in 3d.

Select the Okay button to start a new 2D plot from column 1.  Select 3D plot to start a new 3D plot.  Select 3DBack to add a 2D background to the 3D plot.  This option uses the levels established by the 3D plot to place a 2D background on top of the 3D plot.  Select the Continue button to continue a plot or background at the row it left off, if it is not a complete drawing.  The screen or sector is always cleared before beginning a new 2D plot, but not with 3D plots or 3D backgrounds.  Use 'C' to clear the screen for a new 3D plot.  Use 'B' to clear a 3D background.

The Continue button works slightly different for displacement plots.  A displacement plot cannot be continued, but the same plot can be redrawn if the Continue button or Continue menu option is selected.  You can start a displacement plot in a small sector, and redraw it full-screen.  The displacement plot can also be redrawn when it is next reloaded, by using the Continue button, even if the Continue option is disabled on the Project menu.

The Reset button returns all boxes and slider values to their original values when the window was opened.

For 3D plots there are four additional edit boxes, the Magnification Factor, Y-Offset, Slope/Cutoff and Rise.  The Magnification Factor controls the amount of Z-Axis depth for each point plotted.  This can range from 0 to 10000.0.  Use less for smaller plots.  The amount of magnification used depends on the smoothing factor, size of plot and iterations.  Excess magnification can result in a plot being clipped off the screen.  Note: for a magnification of 0.0, the curve is totally flat and the lower boundary is clipped to the line being drawn, instead of a level starting from the boundary of the plot sector.  In order to create full-screen three-dimensional plots, a larger triangular plot is clipped to the sector's square limits.  The Size slider must be set to at least double the sectors 2D horizontal resolution for a seamless 3D rendering.  The 3D plot is drawn left to right, so that the lower edge of the plot can be set with the Y-Offset box.  Potential is mapped with continuous color changes from the bottom of the plot to the starting line.  The Y-offset should be adjusted so that the starting line is nearly invisible, with as smallest a section shown as possible, to minimize odd color changes at the start of the plot.  For some views, it is impossible to avoid a clipped-polygon effect if the potential are high at the start of the function's min/max zones.  You need to zoom out somewhat, to retain the 2D image area in full-screen 3D.  Also, an horizon is established on all 3D plots at approximately 1/3 down from the top of the plot.  This works by clipping all points above the horizon, but retaining the height of all points at or below the horizon.

The Y-Offset controls centering of the plot up and down.  The plot is automatically centered left to right.  Use a small positive or negative offset to start (under 0.5 or zero), then go from there.  A positive y-offset moves the plot down on the screen.  This value will change with the size of the plot or with increases in magnification.  Also, less Y-Offset is generally required on Low plots than High plots. The smoothing factor is used to determine how steep points near the upper limit of escape times appear on screen.  Start with a value from 1 to 2.  A lower limit of 1.0 is imposed for the smoothing factor.  Continuous potential plots can start with a smoothing value of 2.0 for general plots that contain most of the Mandelbrot or Julia sets.  A lower value will be necessary to bring out detail on closeups.  A higher smoothing factor clips fast-rising points near the Mandelbrot set and smooths the plateaus.  Too much smoothing flattens the curve.  Not enough smoothing results in a chaotic plot with very little aesthetic value.

The Rise box is used to specify a height for the set potential.  Normally the set is mapped at zero or the highest potential (# of colors-1.)  You can change this to create Mandelbrot lakes or sheer cliffs.  Using a Rise value of less than 0 automatically maps the set potential at the highest potential.

For 2D plots, the Cutoff box acts as a palette multiplier or divider, depending on whether the value entered is less than or greater than 1.0.  The palette color is divided by the Cutoff to speed up or slow down color changes.  Cutoff values are limited to a low minimum of .001.  For level curves and the add and multiply color-scaling options, use a negative cutoff value to maintain a smooth palette.  This ensures that the multiplier is used before the (floating-point)palette values are converted to (integer)palette indexes.

For spherical plots, the Y-Offset determines the y-center (up and down) for the sphere.  A value of  0.5 centers the sphere in its sector.  Smaller values (to 0.0) move the sphere up, while larger values (up to 1.0) move the sphere down in its sector.  The Magnification factor determines the size of the sphere, with 20 being a good starting point for moons.  The Size slider controls the smoothness of the sphere.  A size value at least ten times the magnification factor is necessary to produce smooth sphere.

For the displacement routine (type 5), the S box is used to control the fractal dimension (valid inputs are 0-1.0).  A lower number gives the fractal a higher dimension, and thus more ragged and choppy appearance.  In 3D mode the magnify box works as for other 3D plots, except that a value of .4-1.0 is adequate for most plots.  For 2D plots or backgrounds, the magnification factor is used  as a color scaler.  A value less than 1.0 reduces the number of colors by the same factor.  This is necessary to create more realistic clouds.  The color palette for 2D plots is rotated by the cutoff number.  This allows some independent color control given the limitations of a palette-based system.  The arg box is used to control shaping and fullness of the finished plot.  The plot may include random additions at every point or just the end points.  The shape may be scaled linearly or non-linearly.  The following values for the arg box control random additions and shape:

     0 -- random additions at end points only;    linear shaping.

     1 -- random additions at every point;           linear shaping.

     2 -- random additions at end points only;    non-linear shaping.

     3 -- random additions at every point;           non-linear shaping.

 For displacement plots, the Rise value determines the minimum height plotted.  Heights below the Rise value are treated as 0 altitude.  For 2D plots, pixels at minimum height are not plotted.

Displacement routines require an additional 1Meg of free memory.

   The Rotate box is used to rotate the picture by any degree.  This rotates all three points that define the Z-plane.  The rotate angle is reset to zero after each use.


New Plot

Starts a new plot.  For 2D plots, the screen or sector is cleared first.  Clicking with the left mouse button, or any key besides the color-cycling and palette keys, stops the plot at any point before the plotting is finished.


Reset

Reset the current figure or all figures to an empty Mandelbrot.  All functions in the New Function data are blanked.  All options on the Flags menu are reset to their default settings, except for Auto Save, Backup Copy, Auto Aspect and Auto Warn.  The Print Function Data ignors any reset figures.


Zoom In/Out

Turns on zoom mode, so that detail of the current plot may be magnified.  This works in two ways depending on whether aspect is fixed or not with the Auto Aspect flag.  With auto-aspect on, using the mouse, move the zoom box over the portion of the plot you wish to magnify.  Hold the left mouse button to shrink the box or the right button to enlarge it.  Use the left and right arrow keys to rotate the box counter-clockwise or clockwise.  With auto-aspect off, use the mouse to define a rectangular area, by clicking twice at opposite corners of the area.  The menu bar is hidden so that more of the plot is accessible during zooming.  The program will begin a new plot at the new coordinates.  You may zoom in by defining a box inside the current drawing area.  You zoom out by drawing a box outside the current drawing area.  The outer zoom limits are between (but not including) -1000 and 1000.  The precision is that of double precision (64 bits)

Note:  Zooming in a three-dimensional plot is not supported, nor is zooming using an image file generated at a different screen resolution.  If you change screen resolutions, you must regenerate the bitmap image for a function before you can accurately zoom on it.


Show Picture

Displays the entire plot. (or as much as will fit on the current screen, if done at a higher resolution), in a maximized window without title bar or menu bar.   At all other times, part of the picture is hidden by the inclusion of the title bar and menu bar(if not plotting or zooming).


Continue Draw

Continues a plot that was aborted early.  The plot is restarted at the beginning of the last row drawn.


Edit Palette
Edit Palettes

Calls up the ZPlot palette editor, so you can modify the palette in use.  This is a simple palette editor, with copy and spread options to smooth or customize the existing palettes in ZPlot.  You can then save all the palettes in a .pl file, or just the palette in use, by saving the entire function and bitmap.

Use the RGB-slider controls to edit any color in the palette.  Select Copy to copy any color to another spot in the palette. Select Spread to define a smooth spread of colors from the current spot to another spot in the palette.  Copy and Spread take effect immediately when you select another spot with the mouse button.  You can cancel the operation with the Cancel button.

Click on any point on the main window and the palette color for that pixel will be displayed in the palette editor.  You can use any of the color-cycling keys(after clicking on the main window) to see the effects of the cycling and scrambling options in the palette editor window.

Use Reset to reset the colors of the palette in use, to where it was before it was cycled or modified.  Note: if you change palettes with one of the function keys, any modifications to a previous palette are unaffected by the Reset button.


Load Function
Load Function/Palettes

Loads a function previously saved by ZPlot, updates menu settings and loads the .BMP file for the saved screen.  If the plot was aborted before finishing, it can be continued at the last row drawn.  If Load Palette is selected, a palette is loaded from any .BMP file requested.  The bitmap file should contain 256 colors, with the drawing palette contained in the upper 236 colors.  The first twenty colors are reserved for Windows use and are not used for drawing.

Load Palettes loads a set of custom palettes, edited by ZPlot and saved with the .pl extension.

Related Topics:

File Windowexplains how to use the file requester controls.   Edit Palettedescribes the ZPlot palette editor.


Load Par File

Opens a requester window that allows the user to select and convert Fractint parameter files to ZPlot format.  A list of par titles is displayed for each .par file loaded.  The user then selects a title and clicks on Convert to translate it to the current image data.  This works for many but not all escape-time fractals.  3D and other types, such as Orbit Fractals are not translated.  Some of Fractint's 2D options are implemented differently in ZPlot, so the translation may not be exact.  The Fractint palette specified in the colors option(if any) is loaded into F12.  Since ZPlot uses a 236-color palette, the last 20 colors of the Fractint palette are not used.  You may have to rotate/edit the palette to reproduce some palettes.

Related Topics:

File Windowexplains how to use the file requester controls.   Edit Palettedescribes the ZPlot palette editor.


Save Function
Save Function/Palettes

Saves all pertinent information about the current plot, plus the menu settings, and a .BMP file for the current screen.  The default mode saves the bitmap in compressed form.  Use Save RGB to save the bitmap in uncompressed form.  Most Windows programs can load the uncompressed file (if they use bitmap files), but not necessarily the compressed file.  So use the compressed file to save disk space, but use the uncompressed file for use in other Windows programs.

Save Palettes saves the current 21 palettes in a file with a .pl extension.  Hint: if you customize all the palettes and save them in a file "title.pl", they will be loaded automatically every time you start up ZPlot. You can change the opening screen too by naming any .BMP file "title.bmp."

Related Topics:

File Windowexplains how to use the file requester controls.   Edit Palettedescribes the ZPlot palette editor.


Print Bitmap
Print Bitmap...

Gives you the option to print the current ZPlot window.  Choose Print to send the window's bitmap to the print manager, or Cancel to cancel this operation.


Print Function Data

Prints New Function data and menu selections for all non-blank figures.  Reset figures are ignored.


Exit

Exits the program.  Alternatively, you can use the System Close command to exit ZPlot.  If you choose the System Close option while plotting, the program does not exit, but plotting does stop.


About ZPlot

The original ZPlot was written on an Amiga 2000 in 1989, using fast-floating point for speed.  The current version uses a math chip, if present, or emulates double precision.


Mandelbrot0

Mandelbrots base their mapping on varying inputs of complex C, which corresponds to the min/max values set in the New Function window.  With Mandelbrot0, Cr and Ci represent the initial value of Z before the first iteration.  This is normally zero, but can be changed to produce non-symmetrical Mandelbrots, or Mandelbrots based on formulas whose initial value of Z must be non-zero to generate anything.


MandelbrotP

Mandelbrots base their mapping on varying inputs of complex C, which corresponds to the min/max values set in the New Function window.  With MandelbrotP, the initial value of Z is set to the value of the pixel being iterated.  This produces interesting effects with some Mandelbrot formulas that normally start their orbits at zero.


Julia

Julia sets normally have a fixed complex C, with varying inputs of Z, which corresponds to the min/max values set in the New Function window.  This option, without the Bound flag set, generates the so-called 'filled-in' Julia set, which includes non-escaping points as well as the Julia set.


Julia Tower

Julia sets normally have a fixed complex C, with varying inputs of Z, which corresponds to the min/max values set in the New Function window.  The Tower option, without the Bound flag set, generates a "stacked" Julia set.  This Julia set has its constant incremented by a value of Cx, where Cx represents four variables(cx, cy, cz and cw) for incrementing each part of the complex C(cr,ci,cj,ck), specified in the New Function window.  The constant is scaled from its initial value c to the value of c+Cx.  Each row of the set has a different slice of the constant.  Some functions that rely heavily on both cr and ci for their shape show a marked "meltdown" as a tower.  Note: zooming with this flag set changes both complex C and Cx to maintain the correct scaling factors.


Z-Real

The real part of the complex number Z, used to map exponential Julia sets, etc.


Z-Imag

The imaginary part of the complex number Z.


Abs(Z-Real)

The absolute value of the real part of the complex number Z, used to map exponential Julia sets, etc.


Abs(Z-Imag)

The absolute value of the imaginary part of the complex number Z.


Abs(Z-Real) + Abs(Z-Imag)

The absolute value of the real part + the absolute value of the imaginary part of the complex number Z.  Changes the way banding appears in complex mappings.


>Abs(Z-Real) or Abs(Z-Imag)

The greater of the absolute value of the real part or the imaginary part of the complex number Z.  Changes the way banding appears in complex mappings.


<Abs(Z-Real) or Abs(Z-Imag)

The lesser of the absolute value of the real part or the imaginary part of the complex number Z.  Changes the way banding appears in complex mappings.


Abs(Z)

The absolute value of the complex number Z (traditionally calculated by taking the square root of the sum of the squares of the real and imaginary parts of Z, but ZPlot uses only the "sum" for break-point tests.)  The standard method of mapping Julia  and Mandebrot sets.


Biomorph

Biomorphs test the real Z and imaginary Z values after breaking the iteration loop.  If the absolute value of either is less than the preset zlimit, the point is mapped as part of the set.  This method produces biological-like structures in the complex plane.  Normally the biomorph tendrils are colored in the set color(the color reserved for non-divergent or inner points.)  With the Set Only flag on, the tendrils are colored according to the color-scaling option used(other external points are colored in the background color.)


Boundary-Scan
Boundary Scan

This option generates complex sets using a boundary-scanning routine described by C. Pickover.  This flag is mutually exclusive with the Convergence, Newton and Renormalization flags.


Epsilon
Orbit Traps

This includes methods that trap the orbit of a point if it comes in range of a prespecified area or areas.

The Epsilon-Cross method colors points only if the absolute value of Z-real or Z-imaginary is less than or equal to Epsilon(a small value.) Other points are mapped at the time they blow up(exceed the zlimit.)  This produces hair-like structures that branch wildly from the complex set boundaries.  For the Epsilon-Inside option, the epsilon method is applied only to points included in the set.  For the Epsilon-Outside option, the epsilon method is applied only to points outside the set.

The Four-Circles method(Paul Carlson) uses four circular areas to map a point's orbit.  This produces sphere-like structures.

The Display Even Only option is used to declutter some epsilon plots by coloring points that excape on even iterations only.  Odd points are plotted in the background color.

A window is opened to enter a value for Epsilon, which is used to define the size of the trap areas(.001-2.0.)  The exclude box is used to exclude the first # iterations(0-99) from orbit trapping.


Level Curve

Level-curves map the set points based on how small the value of Z gets.  This allows the inside of the complex set to be color-scaled.  Log Map #1 produces colored bands on the inside of the complex set.  Points are mapped according to what the value of z is at final iteration.   Small  Log #2 produces circular patterns inside the complex set.  Points are mapped according to the smallest value z gets during iteration.  Indexed Log #3 is mapped according to the time it takes z to reach its smallest value.  Level curves 2 and 3 are described more fully in The Beauty of Fractals.  Linear Map #4 is mapped like Log Map #1 (with the mapped value of the function at its final iteration applied to the color palette) and produces 3D-like effects with the Epsilon-Cross method.  The Log methods use a log palette, while method #4 uses a linear palette.  This option can override (or may be overridden by) many of the options in the Color-Scaling menu.  Decomposition doesn't use Level Curve shading, unless you select the Use Level Curve option.


Set Only

The Set Only flag plots all external points in the background color.


Newton Set

The Newton flag is used to map the zeros of a particular function after the Newton transformation has been applied to the function.  The program doesn't make the transformation (z-(f(z)/f'(z)), where ' stands for d/dx), but it does allow you to map up to 6 attractors.  Each time the Newton flag is set, a window is opened to allow you to enter up to 6 attractors (or repellers) of the function.

This flag is mutually exclusive with the Boundary Scan, Convergence and Renormalization flags, and automatically excludes all points that don't converge to one of the attractors set, within the preset number of iterations.  The points that converge are colored with one of up-to-6 possible color spreads(the built-in functions may allow more colors) evenly-spaced in the current palette, according to the root they converge to and the time it takes to converge.  The non-converging points are mapped with the set color or their level set color(with a level flag set) after the maximum number of iterations.  Non-converging points show up typically as round areas or spots.

Generally, a limit of 50 iterations gives optimum results. The Newton transformation is normally used with Julia sets, as the attractors (solutions of the formula) can be calculated beforehand.  Its also possible to explore the Mandelbrot set applied to Newton's method, but only with some of the built-in formulas mentioned above.  It this case, the solutions of the formula for every point on the screen have to be calculated separately, which the program does in a dedicated routine.


Newton Off

Turns off the Newton flag, otherwise this option is disabled.


Renormalize
Renormalization

The Renormalization flag uses a hierarchical lattice transformation to map magnetic phases, with either the Julia set or Mandelbrot set as the iterated function.  (Consult The Beauty of Fractals by Pietgen and Richter for appropriate formulas to use.)  Basically, the default-mapping algorithm checks orbits for convergence to 1 or infinity, and scales these points in different colors.  This flag is mutually exclusive with the Newton, Convergence and Boundary Scan flags.  The default method of display actually only checks if z passes through 1.  This is similar to the epsilon-cross mapping method.  For the original renormalization formulas, there is a strong orbital attraction to 1.  For other functions, this mapping produces unusual effects(with obscure mathematical foundations.)  For the built-in functions, the convergence tests (type 2 or 3 and 6-8 display types) are the same as the ones used with the Newton flag.  So either method produces similar results with the same formula.  The differences are worth playing with, though.


Convergence

With the Convergence flag set, the program does a convergence/periodic check on all points.  This is similar to the convergence checks done with Newton and Renormalization, but also the orbits of each point are saved to determine if the orbit repeats.  When an orbit repeats, the iteration loop is broken and the point colored according to its break time.  Depending on the iteration limit, the last 200 points of each orbit are tracked for this check.  This flag is mutually exclusive with the Newton, Renormalization, and Boundary Scan flags.  May use Newton display methods 3 and 6-8(alternate convergence tests), by setting the arg gadget to these values.


Bioconvergence

This option relates the Biomorph method to convergence for convergent-type fractals(Newton, Renormalization and Convergence.)  A psuedo-biomorphic algorithm is applied to converging points.


Period Check

With the Period Check flag set, the program does a convergence/periodic check on all points.  This is similar to the convergence checks done with the Convergence option, except that only the orbit is escaped from when it repeats.  The color of the pixel at escape time is the set color, when no other inside-coloring methods are used.  With boundary scan on, the pixel is set to the background color.  With continuous potential or level curves, the pixel color will be altered later.  This option is useful for speeding-up plots with high iterations, and a large attractive(non-escaping) area.

This flag is mutually exclusive with the Newton and Renormalization flags.  May use Newton display methods 3 and 6-8(alternate convergence tests), by setting the arg gadget to these values.


Decomposition

When a Decomposition flag is set, you have the option of performing either a binary or continuous decomposition.  Toggle the External/Internal option for either an external or internal decomposition.  An external decomposition decomposes points that are outside the complex set.  An internal decomposition decomposes the complex set.  For Mandelbrot/Julia curves, z-arg is broken into two parts for a binary decomposion.  For Newton/Renormalization curves, the binary decomposition is also related to the number of solutions a formula has, if it supports mapping option 1.  Continous decomposition breaks z-arg into n parts, where n=angles, as set in the Continuous Decomposition window.  An angles value of less than 2 turns off the Continous Decomposition option.  (Consult The Beauty of Fractals by Peitgen & Richter for a mathematical explanation of decomposition.)  When Biomorph or Epsilon are decomposed, the tendrils or hairs are decomposed as external points.  Use the Set Only flag to emphasize the tendrils and hairs when external decomposition is used.)


Switch

When a Switch flag is set, you have the option of switching the real and imaginary parts of Z, or switching Z for C.  The real part of Z is exchanged with the imaginary part of Z after each iteration.  Using this technique with the Mandelbrot set produces a tricorn-like plot.  When Z is switched for C, normally you get Mandelbrots from Julia sets and vice versa.  This option also offers an inverse to the Julia Tower, with glimpses into the elusive Mandel Tower, a sort of gateway to infinity.


Spin

When the Spin flag is set, the complex constant is incremented by a scaled factor of cx(cx*c/iterations) at every step of iteration.  Unavailable for Julia Tower types.


Phoenix

The Phoenix flag rotates the planes, so that the imaginary plane is mapped horizontally and the real plane is mapped vertically.

This option is normally used for mapping Phoenix curves (Shigehiro Ushiki), which are Julia-related curves based on the formula f(z+1)=z²+p+qz.  'p' and 'q' are constants, and the 'z' term of 'qz' is actually the value of z^n-1, or the previous value of z before the current iteration.  'zn' is reserved by ZPlot to represent this value, while the complex constant set in the New Function window becomes 'p' and 'q'.  The real part of the complex constant is 'p' and the imaginary part of the constant is 'q' (when the Phoenix option is chosen).

If the Phoenix flag is used with the Mandelbrot option, 'j' and 'k' should be used as the constants, since the complex constants p and q are already used as the starting value of 'z0'.


Invert

The Invert flag inverts the plane around a circle. A window is opened that allows the user to specify the circles radius and center coordinates.  Select Auto Coords to let ZPlot calculate the center coordinates and cirle radius.  You can zoom on an inverted picture as long as radius and center coordinates remain fixed.


Solid Guessing

In the solid-guessing plotting mode, the program guesses at colors which lie inside rectangular areas of the plot.  It first computes all the perimeter pixels of a rectangle, and checks if all the pixels have the same color.  If so, all the pixels inside the rectangle are colored the same and no further calculations are done on that rectangle.  Otherwise the rectangle is broken into four parts and the above procedure is repeated for each part.  If any of the perimeter pixels are different at this point, all the remaining pixels in the smaller rectangle are computed.  The screen is updated in groups of 16 lines.

This method can be much faster than the default single-pass mode that ZPlot starts in.  This is especially true for plots that have large areas of a single color.  For very intricate plots that have little open space, the solid-guessing mode can still be 15-20% faster.

The solid-guessing mode can fail for some plots that have small areas of one color that are islands inside the rectangular areas under test.

Solid-guessing is not available for 3D, midpoint displacement or spherical plots.


Tesseral

Tesseral is a variation of the solid-guessing plotting mode, where the program guesses at colors which lie inside rectangular areas of the plot.  The main difference is in the size of the rectangle that tesseral uses to start with and how the screen is updated.  Tesseral starts wih the whole screen and divides that into quarters, eighths etc until it reaches a solid block or a minimum size to fill in pixel by pixel.  This is a recursive routine, so the whole screen is updated every 100 recursions, or when done, rather than by lines.

This method can be much faster than the default single-pass mode that ZPlot starts in.  It runs about the same speed as the solid-guessing mode.  The main advantage Tesseral has over solid-guessing is when there are very large areas of one color in the plot(such as a Mandelbrot island) that take a long time to compute, as when the iterations variable is set to a large number.

Like solid-guessing, Tesseral can fail for some plots that have small areas of one color that are islands inside the rectangular areas under test.

When selected, tesseral opens a window to set an outine color, if desired.  The areas filled in by the tesseral routine are outlined using this color.  An outline color of -1 means no outlining.  Tesseral is turned off by selecting Solid Guessing or entering a negative number less than -1 for the outline color.

Tesseral is not available for 3D, 3D background, midpoint displacement or spherical plots.


Split Palette

The color palette is split into 1-10 color ranges, user-specified in the window this option opens. This gives a simple fractal bands of color that can add a professional touch to the picture.


Picks Slice

With this option set, the 4D z-planes are rotated to match C. Pickover's quaternion examples in "Computers, Pattern, Chaos and Beauty  Only affects quaternion and hypercomplex plots.


Default Function

When this option is enabled (off by default), convergent functions are iterated according to their original type.  ZPlot allows treating a renormalization curve as a Newton curve, or vice versa, but the governing flag must be set through the flags menu.  The Default Function option allows a built-in function to work as a Newton or renormalization curve without those flags being set.  Newton functions work only as Newtons and likewise for renormalization formulas.  Function types that use two built-in functions can distinguish between convergent and non-convergent formulas and use the suitable escape or convergent checking for each formula.


Auto Aspect

When this option is enabled (on by default), the current view aspect is maintained while zooming(the zoom box maintains a height-to-width ratio of 4 to 3, the usual VGA screen aspect.)  Turn this option off, if you'd like to play with the aspect.


Auto Save

When this option is enabled (on by default), a timer is initialized when a plot is running.  Every 30 minutes, the plot is saved under the name "autoplot.zp.". If the Backup Copy option is also enabled, another copy of the plot is saved under "backup.zp."  The plot is also saved when all plotting is finished, or when you stop a plot by clicking the mouse or pressing a key.  This acts as a failsafe for long-running plots.  If there's chance of power outages or you're working with a program that could crash your system, this is a good option to keep enabled.


Backup Copy

With this option enabled (on by default), a backup copy of the current plot is saved under "backup.zp" each time a function is saved.  The bitmap is saved under "backup.bmp".


Auto Warn

With this option enabled (on by default), any time the bitmap changes, a flag is set.  When you try to load another function or exit before saving the current function, you are warned that the function has changed.  You are then given the chance to save the current function and bitmap before proceeding.  To streamline the quick load function, this flag is reset any time 'Q' is used.  This option also enables or disables the confirmation requester when using the Reset menu commands.


Auto Alert

With this option enabled (on by default), you get an audible alert whenever a plot finishes or is stopped by clicking the mouse or pressing a key.


Figure #1

Switch to Function #1.  Current settings are saved under the previous image.


Figure #2

Switch to Function #2.  Current settings are saved under the previous image.


Figure #3

Switch to Function #3.  Current settings are saved under the previous image.


Figure #4

Switch to Function #4.  Current settings are saved under the previous image.


Escape Modulus

Three options are included that color a point based on its escape time (when it blows up).    A repeating color palette is used to color the points.

The Iteration option uses only the point's escape time.

The Iteration+ option uses the sum of a point's escape time and the value chosen(which can be picked from a menu that mirrors the Map menu.)

The Iteration* option uses the product of a point's escape time and the value chosen.

The Angle-Iteration option uses the difference between a point's exit angle(theta) and its loop-breaking value.  Values below 0 are truncated.


Level Modulus

A point is colored based on its logarithmic escape with a repeating color palette.


Escape Graded

A point is colored based on its escape time (when it blows up) with a non-repeating color palette.


Continuous Potential

A point is colored based on its continuous potential (when it blows up) with a non-repeating color palette.  A window is opened that allows you to set a q factor, which controls the smoothness of picture color.  A higher q factor results in grainier pictures and excess detail.  Too low a q factor results in loss of colors and detail.


Level Graded

A point is colored based on its logarithmic potential (when it blows up) with a non-repeating color palette. .  A window is opened that allows you to set a q factor, which controls the smoothness of picture color.  A higher q factor results in grainier pictures and excess detail.  Too low a q factor results in loss of colors and detail.


Background

An external point is colored with the background color.  This works like the Set Only flag, except with decomposition plots and Biomorph/Epsilon plots.  Normally, when a point is decomposed, its escape time or level color is added to its arg(exit angle) to determine its final coloring.  With Background color-scaling, only a point's arg determines its color.

With Biomorph/Epsilon plots, all external points are colored with the background color and all Biomorph/Epsilon points are colored with the set color.


Use Level Curve

All points are colored according to the choice selected from the Level-Curve Flag option.  Defaults to Linear Map #4 if no Level Curve is checked.  This works with Decomposition and other methods which would normallly not use Level-Curve shading.


Log High

Maps hill or mountain-type plots with a logarithmic slope based on iterations( escape time of Z.)  Logarithmic slopes smooth out fast changes in point potentials.  User specifies the level of the set point with the Rise box (0--[# colors-1]).


Log Low

Maps valley or lake-type plots with a logarithmic slope based on iterations( escape time of Z.)   Logarithmic slopes smooth out fast changes in point potentials.  User specifies the level of the set point with the Rise box (0--[# colors-1]).


Continuous Potential High

Maps hill or mountain-type plots with a logarithmic slope based on potential (the absolute value of Z when the point escapes.)  This option usually produces smoother contours with the Mandelbrot set than the Log options.  User specifies the level of the set point with the Rise box (0--[# colors-1]).


Continuous Potential Low

Maps valley or lake-type plots with a logarithmic slope based on potential (the absolute value of Z when the point escapes.)   This option usually produces smoother contours with the Mandelbrot set than the Log options.  User specifies the level of the set point with the Rise box (0--[# colors-1]).


Restore

 	Restore ZPlot's main window to normal size from an icon or full-size.


Move

 	Move ZPlot's main window using the keyboard cursor keys.


Size

 	Size ZPlot's main window using the keyboard cursor keys.


Minimize

 	Reduce ZPlot's main window to an icon for easy recall later.


Maximize

 	Enlarge ZPlot's main window to full size so you can view more of the main window's client area.


Close

Exit ZPlot.  You will be asked if you want to save changes for any function data that has changed, before exiting.


Switch To Tasklist

 	Go to Window's task list, so you can switch between applications easily.