
*****************************
* MMFrac prototype Tutorial *
*****************************

Please note that this is a tutorial on the use of MMFrac, not on fractals.

It's best to view this in at least 640*480 videomode (not 320*200 or 320*240).

First of all press "t" to enter/exit the tutorial display.
To scroll up and down through the tutorial use pgup/pgdn or up/down or space.
When you re-enter the tutorial, the position will be the same
as when you left it.
While viewing the tutorial you may also use "home" to go to the start.

Now for the real stuff ! NB. This tutorial refers to standard 2D M/J fractals.

Use of the mouse.
*****************

The main use of the mouse is to zoom-in or zoom-out of the
currently displayed fractal.

There are two (main) ways of zooming.

1. The simplest way of doing this is by moving the hand to point
where you wish to zoom and then pressing the left-mouse-button
to zoom-in or the right-mouse-button to zoom-out.

Try it after reading this paragraph !
Press "t" to turn off the tutorial, then use the left (or right)
buttons to zoom-in (or out) of the current fractal - choose positions near the
edge of the black area (the "lake") when zooming in.
Once you've finished testing this you could press "home" to reset the fractal.
When you've done press "t" to read on.

As you could probably tell, when you zoom, the position you choose is put at
the centre of the screen with the fractal resized according to the zoom.
You can zoom-in a very long way ! (not quite forever though)

2. The other way of zooming into a fractal is by dragging a box around the
area you wish to view.
This method requires that you press (and hold) a key as well as the
left-mouse-button while moving the hand from one position to another
in order to produce a box (which is displayed as you move the hand).
There are two keys you can use, these are the "shift"
or "control" keys ie. either "shift" or either "control".
If you use "control" then the area you select will be magnified to fill the
display without changing the relative vertical and horizontal scales.
If you use "shift" then the box you select will be magnified to exactly fit
the display which means the relative horizontal and vertical scales may change.

Read this paragraph, then try box-zooming using control.
Press "t" to turn off the tutorial then move the hand to point
at the top-left corner of the area you wish to magnify.
When the hand is in the correct position press and hold either control key
THEN the left-mouse-button (keeping both the key and the button held).
Now move the hand to point at the bottom-right corner of the area you wish
to magnify (a box will be drawn as you move the hand).
When the box is correct, release the mouse button and the area will be
magnified, THEN release the control key.
Releasing the control key first will cancel the operation - you can do this
if you realise that the start position wasn't quite correct.
You can again press "home" to reset the fractal,
before pressing "t" to return to the tutorial.

Now repeat the above using shift instead of control.

You should have noticed that when you used control the relative scales were
kept the same, but changed when you used shift.
If you didn't reset the fractal after testing shift zooming then please do so
now by pressing t, home, t.

If you like, practice the above zooming methods before continuing the tutorial.

The mouse also may be used when selecting an information field to edit, this
will be ignored here.

The Information Display.
************************

This is the information display that appeared over the fractal when you first
ran the program. It will currently be off (because you're reading this !) and
will still be off when you exit the tutorial.
When you exit the tutorial, you can turn the information on and off using "i".
Try this now, then continue the tutorial.

Using i just toggles the information display on or off, it doesn't allow you
to edit any of the settings.

The field on the top line of the information is the fractal type, this can
now be changed from Mandelbrot/Julia to Landscape/Plasma. This tutorial will
assume it stays in Mandelbrot/Julia mode.

The field on the second line is the Fractal Name.
This is the field where you may select the specific fractal you wish MMFrac to
draw AND the method used to draw it.

One way to enter edit mode is to use any arrow key.
(whether or not the information is currently displayed)
Once in edit-mode you can exit again (cancelling any changes to values)
by pressing the ESCape key.

Try entering and exiting edit-mode now:
Exit the tutorial, press any arrow key, look at the information,
press escape then return to the tutorial.

When you looked at the information you should have noticed that the Fractal
Name field was highlighted, this is because it was ready for editing.
All the editable fields containing text are edited in basically the same way.
When the field is selected (highlighted) you may change it using the up/down
arrow keys. (In the Fractal Name field you can move faster through the options
using shift with the up/down keys)
Try changing the Fractal Name field now, pressing escape to exit edit-mode
when you're finished, then return here.

Once you're in edit-mode you can also change the current edit-field
by using the left/right arrows.
Try this now, go back into edit-mode then use the left-right arrows to move to
different fields, pressing escape to exit edit-mode when you've done.
Then return here.

You can change a field, move to a new field, change that and move again as
many times as you like. None of the changes you make will be applied while in
edit-mode and you can cancel them all by exiting edit-mode using ESCape.
To actually apply any changes made you must exit edit-mode
by pressing the return key.

To try this re-enter edit-mode and use the
left-right arrow keys to select the
Fractal Name field.
When the Fractal Name field is highlighted
use the up/down keys to change the field to
a different name. (Choose something other than the "Mandelbrot" names)
When you've selected a new name press return and the new fractal should be
drawn, if the screen is black or things seem off-centre press home before
returning here.

At this point you could investigate the new fractal by zooming in and out of
different areas using the mouse zooming methods described above, and then
try a different Fractal Name and do so again.

From now on I suggest you exit the tutorial when you wish to check that you
have understood the text, then return here.

Following the fractal name field are the fields for the screen edge
coordinates, the magnification values and the screen centre coordinates.
These are all floating-point numeric fields and may be edited in the normal
manner using the number keys, backspace, "-" and "E". Delete will empty the
field ready for entry of a new number.
If you find a really good image that you wish to re-create at a later date
then you can make a note of the values in either the screen edge fields or
the magnification/centre fields, you don't need both edge values and
mag/centre values. (MMFrac now includes parameter saving making this
redundant). You could also use these fields to move around and
change magnification but this is done more easily using the mouse zooming
as above.

The next two fields are also floating point numeric fields,
the "real constant" and the "imaginary constant".
When you're on a "Mandelbrot" type fractal (eg. M Mandelbrot, M Lambda etc.)
then the term "constant" is something of a misnomer since these two values are
used as the start "Z" (ie. Z(0)) value for the fractal.
When you're on a "Julia" type fractal (eg. J Julia, J Lambda etc.) then the
two values are used as the constant term in the current fractal formula.
In either case modifying the real or imaginary value will change the current
fractal quite significantly - general speaking, the larger the change made to the
constants the greater the effect on the fractal.
The keypad numbers can be used as a quick way of modifying the constants
without having to enter "edit" mode - see the main help for details.

These fields also contain two "rotation" values each.
The rotation values in the real constant field are for "3D" rotation
around the horizontal (X) and vertical (Y) axes.
The third dimension for this 3D rotation is a "line" in the complex plane
of all values for the constant.
By default the third axis (Z - in/out of the screen) is taken to be the
real part of the constant, but you may change this.
In the imaginary constant field are the 2D/3D rotation value for around the
in/out (Z) axis and a rotation value for modifying the "line" to be used
as the third dimension.
To modify any of these rotations select the appropriate constant field then
use the up/down arrow keys to change the first rotation in the field and use
pageup/pagedown to change the second.
Use shift to modify the values faster.
When editing the imaginary constant field you may also press the insert key
to toggle the 3D transformation from a normal rotation to a deformation
(signified by "Dfrm").
This deformation uses the "X" component for the "Z" axis after 3D rotation
as the real part of the constant and the "Y" component as the imaginary
part of the constant rather than combining the two as normal.
Rotation is always around the current screen centre, using the
real/imaginary constant values as the origin for the "Z" axis.
NB. Do not confuse "Z" in the above paragraph with the complex number "Z"
(made up of "X+iY") used in the fractal formulas, it is used here simply to
refer to the third axis for describing 3 dimensions.

The Max Iteration field is a numeric integer specifying the maximum number
of iterations that will be performed in creating the fractal.
Generally speaking larger values will give more detail but take longer to
draw. The minimum allowed is 16, the maximum 32768.

The Bailout(s) is a double field.
The numeric integer part specifies the divergent bailout value, ie. the test
value used to decide when the fractal is tending to infinity.
Allowed values are from 2 to a very big number !
Larger values tend to give more accuracy.
Generally I recommend about 65536 as a good setting for this bailout.
The second part is modified using the up/down arrows and specifies the
convergent bailout value ie. the test value used to decide when the fractal
is tending to a finite constant.
The possible values of the bailout are "Off" or from "2^-16" to "2^-35".
"2^-16" is generally fine in most cases.
You will notice that the convergent bailout may also be "All", "Mag", "Det" or
"One" to "Eight". You can switch between these and "Off" without changing the
numeric value of the bailout using shift with the up/down arrows.
"All" will find all cases of "finite point attraction".
"Mag" will find only attraction to the complex number (1,0) - this point
attractor is found in both the "Magnet" type fractals.
"Det" is essentially the same as "All" but will store the most common
attractors found (if any).
"Det" MUST be used at least once for a given fractal before using
the following options.
"One" will find only the most common attractor found using "Det".
"Two" will find the two most common found using "Det".
"Three" to "Eight" will find the most common 3 to 8 attractors
found using "Det".

If you find the above description of the convergent bailout options as clear
as mud then do as follows:
1. Exit the tutorial and change the Fractal Name to "M Magnet2", the Outfill
   to "SmoothIterGen" and then press return.
2. Now press shift+"home" and allow the fractal to be drawn. Only convergence to
   "Mag" ie. (1,0) will be detected.
3. Now select the Bailout(s) field and press shift+the up arrow to change the
   convergent bailout to "Det 2^-16", then press return and allow the fractal to
   be drawn. All detectable convergence will now be coloured.
4. Now change the Bailout(s) field again by pressing shift+the up arrow twice to
   change the convergent bailout to  "Two 2^-16", then press return and again
   allow the fractal to be drawn. Detected convergence to the two most common
   attractors found using "Det" will be coloured.
I hope the above clarifies the use of "All", "Mag", "Det", "One" etc. !

The next field displays the current period checking value which is used to
speed up drawing the fractals.
The displayed values are "Off" and "2^-47" to "2^-16", however when editing
the field the values are "0" (=Off) and 1 to 32.
Use a value of 1 for "2^-47" and 32 for "2^-16".
Entering between 1 and 32 will produce the appropriate "2^-x" value
eg. 15 is "2^-33".
When the period check is enabled drawing fractals with large "lake" areas will
be optimised but there may also be errors produced in the reultant fractal,
especially when convergent bailout is enabled.
Entering higher numbers (up to 32) for the period check will speed things up
the most but is also more prone to errors. Entering lower numbers (down to 1)
will reduce the errors but not speed things up quite as much.
Obviously entering zero will disable period checking so all such errors will
be removed.

The next field allows you to select the condition for divergent bailout, or to
disable divergent bailout completely.
Use the up/down arrows to change the exit condition.
NB. For many colouring modes only "Modulus" makes sense.

The next two fields allow you to change the width and height of the screen
area to use for drawing the fractal, you can reduce these to speed up fractal
drawing.

The next two fields are Outfill and Infill.
Here you can set the colouring method for areas "Out" and "In" where "Out" is
when divergence or convergence is detected and "In" is when neither is found.
The main method of changing these fields is using the up/down arrows, however
for "Cilia" Outfill modes the field has extra options.
The default "Cilia" modes are all "Cell..." eg. "CellIterDiv" and they all
have a number in the Outfill field eg. "Skew 0".
You can change the Cilia type when editing one of these modes using page up
and page down as well as entering a number for the skew value.
Using Shift and page up/page down will set the "use previous" option -
eg. "Prev1CellIterDiv" or "Prev3CellIterDiv"
Use the "-" key to reverse the direction of the skew.
Setting the Prev value will affect the appearance of the Cilia.
As you will see by pressing page up/page down there are quite a lot of Cilia
options.

I suggest you now change the current fractal type to "M Magnet1" and then
try the different colouring methods.
See the section about colouring adjustments in the main help.

******************
Current tutorial end !!

There will be an update soon !

However here are some "best tips"

home to reset the fractal

shift+home to reset the fractal and out-colouring (for the smoothing modes)
(not the polynomial fractals)

F11 to load a "palette image" .bmp file (for use with "Cilia" "Image" modes)

p or shift+p to change palettes

r for a new random palette

x toggles the mouse button-click zooming to happen at the screen centre or
at the hand position, if set to the screen centre "CNTR" appears on the hand.
You can use this to button-click zoom-in or out at a given point multiple
times by first clicking without "CNTR" then pressing x then clicking again
two or three times (or more if your first click was accurate !) - try it.
This method is actually fairly redundant since I've added the box-zooming.

c enters edit-palette mode - see the other help for now !
(use ESCape or c to exit edit-palette mode)

The number keys and F1 to F10 zoom in or out at the hand position (or "CNTR")
by pre-fixed amounts, use shift with them to reverse the effect.

Pressing space will re-center at the hand position without any zooming.
(no-effect if "CNTR" is on)

control+s to save a fractal-picture. (Don't worry if the information's on, it
won't be saved on the image)

The above keys only work when you're not in help/edit/palette modes.

F12 = quit (anytime)

When editing:

Use shift+up/down to change "Fractal Name" without changing the drawing method.

Use pageup/pagedown to change cilia types:
eg. "CellsIterdiv" to "Cells1IterDiv"


Use escape or "t" to exit the tutorial.
