
Contact information for bug reports, feature requests, assistance, etc, is
located at the end of this document. Please do report any bugs not described
in the BUGS file.

*****************************************************************************

===================
Quick Guide to gkII
===================

gkII is based on Gfract by Osku Salerma. Gfract is a GTK2 based fractal 
program that currently implements the standard Mandelbrot and Julia 
sets and supports a variety of colouring methods by way of reverse polish
notation. 

gkII impliments the colouring methods in a different way to Gfract, and
features methods for mangling the Mandelbrot and Julia sets, as well as
random palette generation, parameter load and save, and auto-layering.

Both programs feature, thanks to Osku for his work on gfract, infinite
image size with infinite anti-aliasing (if you have the memory for it,
well, at least 2^31 x 2^31 image sizes), Julia instant preview mode and PNG
support. For palette files, both use the same format as Fractint does but
with palette interpolation for smooth gradations of colour.

The guide assumes the reader is familiar with Mandelbrot image plotting.

Thanks also to Evgeny Demidov for assisting a little to provide a corrected
form of the xr2 equation, which lead me to further derivative equations.

Unless I'm very much  mistaken, gkII has two advanteges over other fractal
image generation programs for Linux:

1) gkII uses the "long double" data type for its calculations. This has the
advantage of more precision and thus gkII can zoom to a greater depth, but
has the disadvantage of making gkII slower.

2) you may increase the amount of anti-aliasing gkII performs on the image
until it's nice and smooth as it should be. Again, this costs in performance
time.

=======
Toolbar
=======

Zooming
-------
  From the left, the first two buttons zoom in and out respectively. Zooming
  out is immediate.  Zooming in brings up a zoom box. Use the left mouse
  button to make it larger, and the right button to make it smaller. The
  middle button actuates the zoom.

Repositioning
-------------
  The view of the image in the window can be repositioned using the third
  button, shaped like a cross. It has two modes, point to point, or center
  point. Either choose a new center point by pressing the middle mouse
  button, or choose a reference point in the image, and then the point to
  reposition it to. You can cancel the operation by using the third mouse
  button or the toolbar button.

M
-
  The M button is for flipping between the Mandel and Kunge bail types.
  This is to aid navigation around Kunge fractals. Avoid using when the
  image is taking a long time to compute. However, the kunge types do
  not always directly relate to the m-set.


==========
Image Menu
==========

Fractal Settings
----------------

Inside/Outside:
  This is where the choice of value for pixel plotting is chosen. It defaults
  to the familiar 'iter'. There is also real, imag, real2 (real*real) and
  imag2, amongst a variety of others. See also the User Parameters
  section.

Scaling:
  This effects the scale of the value with which the pixel will be plotted,
  it multiplies the value. You can thus stretch a palette of 256 colours
  across thousands of iterations. See also Palette Interpolation.

Bail type:
  By default gkII draws the Mandelbrot set, but Kunge is the alternative
  bailout type for gkII, which in addition to calculating the M-set
  equation, simultaneously calculates a secondary equation feeding off the
  Mandelbrot. Bailout can also be 'first' when either Mandel or Kunge can
  cause bailout, or, only when 'both' have bailed.

Kunge type:
  There is a choice of nine secondary equations. The names are cheekily
  arbitrary. This setting can actually apply to the Mandel bail type, just
  because the  bail type is Mandel does not prevent the Kunge equation from
  being used.

  With the bail type set to kunge and the kunge type as no kunge, the
  resulting image will be blank.

Bailout:
  The equation iterates until the absolute value of its result reaches the
  value set for bailout. The default for the M-set is 4.0, while some of the
  kunge types display better with a value of 16.0.

Auto Layer Settings
-------------------

The Auto Layer automatically layers the fractal, it only become active 
when either its Inside or Outside options are set. It works entirely
independantly of Fractal Settings, except that the images of both are
combined. It is not intended to work so as each layer is visible as a
seperate entity.

Only the first and last layers have any settings, the other layers use
values between these two.

The slopes part of the auto layer settings is where you can define
ratios for all the numerical settings in the first half, so that you
could use fewer layers or less perturbation for deeper iterations.

User Parameters
---------------

In the Fractal and Auto Layer settings there is a choice of what to use
for the Inside and Outside drawing attributes. Amongst the choices such as
iter, real, imag etc, are others; a, b, c, d, e, f, n1, n2, n3, n4, n5, n6.
The user parameters is where what these things are is defined. It is so
the former choices can be combined.

The user parameters have no operator precedence. If you define user parameter
a as iter * n1 + real * n2 what you will be using is (iter * n1 + real) * n2.
It would be better to define a as iter * n1 + b and define b as real * n2. 
Another example: iter + imag + sin(real) * n1 does not compute as expected:
iter + imag + (sin(real) * n1) but as (iter + imag + sin(real)) * n1.

============
Palette Menu
============

Interpolate
-----------
  Is a toggle. gkII plots each pixel with a colour chosen from a palette.
  The pixel could potentially have a value between any two neighbouring 
  colours in the palette, thus interpolation actualises that potentiality.

Randomize
---------
Palette randomization works independantly for each RGB colour channel.

Strength:
  How much the new values for the channel will override the existing values.
  0.0 causes zero effect, and 1.0 causes total effect.

Bands:
  The palette of colours probably consists of 256 different colours. For
  example, when Bands is set to 0.125 the randomization will create 32
  equal spaced points in the palette and each of those will have a random
  value. All other points will have inbetween values.

Offset:
  Sets the first colour in the palette to start from. Generally zero.

Stripe:
  How many colours apart the start of each stripe shall be, starting from
  Offset.

Spread:
  How many colours from the start of each stripe to re-colour. Should be
  less than Stripe to create stripes.

Functions
---------
This dialog allows RGB channel swapping and inversion. Its striping facility
works in the same manner as that for Palette Randomization.


*****************************************************************************

Contact information:

gkII - James W. Morris
    james@jwm-art.net
    http://www.jwm-art.net/gkII/

gfract - Osku Salerma
    http://www.oskusoft.com/osku/gfract/
