FractView manual

You can move, scale, rotate and shear the fractal by very intuitive gestures. Every pixel below a finger on the screen is dragged together with the finger by transforming the image. With one finger, the image is simply moved. With two fingers, the image is scaled and rotated (keeping the current aspect ratio) and with three fingers the image is sheared, which is very useful to look at Burning-Ship-alike fractals.

All fractals are stored during one run of the application. Therefore you can return to a previously generated fractal via the back button.

This section should give you an overview of my personal goals. Of course, good ideas are always welcome. These points are in roughly the order in which I would like to work on them

- Caching of values so that the image need not be rendered fully when adjusting some parametes [Done v 1.2b]
- Bookmarks [Done v 1.2b]
- More colorization methods (suggestions are welcome)
- Adding transfer parameter to color palette (+ ‘cycle from’ + offset) [Done v 1.2b]
- Two dimensional color palettes
- Automatically picking z(0) if z(n+1) is derivable using the Newton-Raphson-Method

- Editing parameters by dragging
- Orbit traps
- Showing orbit
- Predefined fractals

- Support for julia sets

- Split view to view julia set next to mandelbrot

- User-defined colorizations
- Sharing of bookmarks
- Implementing pendulum, IFSs, Buddhabrot etc...

Things I would not implement:

- Color cycling
- Automatic adjustment of iterations

- Focus changes when rotating with an open dialog.
- In EditText it is not possible to edit the mantissa
- On some devices the checked bookmark is not highlighted, or it is highlighted in white.

Formulas are case-insensitive, i.e., “sin z” is equivalent to “SIN Z” or “siN Z”.

A complex number can be entered in multiple ways (e.g., 1+2i is perfectly fine), but the easiest way is real part, comma, imaginary part. The number “1 + 2i” can be entered as “1,2”. If one of these components is negative, add a “-”. “-1,2” is “-1 + 2i”, and “1,-2” is “1 - 2i”. Make sure to not accidentially add a space between the “-” and the number as it changes its meaning: “- 1,2” interprets the “-” as sign for the whole number: “-(1+2i)”. “1,- 2” issues a warning “Missing imaginary part” and returns “1 - 2”.

In order to apply an unary function, you can but need not wrap the argument in parentheses. “tan sqr z” is perfectly fine and means “tan(z2)”.

Functions with multiple arities use a syntax that is a bit LISP-alike: f(a,b,c) is denoted as f a ; b ; c, where a must not be some binary function (binary binds less).

The following list shows all implemented special parameters, binary and derivable, unary and derivable, unary and not derivable functions, and all macros (functions that are expanded to full expressions).

Description | Syntax | Comment |

z(n) | z | |

Real part of z | zr | Not derivable |

Imaginary part of z | zi | Not derivable |

Previous values of z z(n-1) z(n-2) ... | z1 z2 ... | Not derivable |

Coordinates of current pixel | c | |

Real part of c | x | |

Imaginary part of c | y | |

Current index | n | |

Addition | a1 + a2 add a1; a2 | |

Subtraction | a1 - a2 sub a1; a2 | a - b - c = (a - b) - c a - b + c = (a - b) + c |

Multiplication | a1 * a2 a1 a2 mul a1; a2 | a1 / 2a2 = a1 / (2a2) a1 / 2*a2 = a1 * a2 / 2 sin a cos a = sin(a * cos(a)) sin a*cos a = (sin a) * (cos a) |

Division | a1 / a2 div a1; a2 | a / b / c = (a / b) / c a / b * c = (a / b) * c |

Power | a1 ^ a2 pow a1; a2 | a ^ b ^ c = a ^ (b ^ c) |

Negation | - a neg a | -1,2 = (-1 + 2i) - 1,2 = -(1 + 2i) a1 -- a2 = a1 - (-a2) sin - a = sin (-a) a1 -a2 = subtraction --a is a syntax error |

Reciprocal: a-1 | rec a | |

Sum Reciprocal: a + a-1 | srec a | |

Difference Reciprocal: a - a-1 | drec a | |

Square: a2 | sqr a | |

Square root | sqrt a | |

Exponential: ea | exp a | |

Logarithm | log a | |

Sine | sin a | |

Cosine | cos a | |

Tangent | tan a | |

Arcus tangent | atan a | |

Hyperbolic sine | sinh a | |

Hyperbolic cosine | cosh a | |

Hyperbolic tangent | tanh a | |

Area hyperbolic tangent | atanh a | |

Complex Conjugate | conj a | re a - i im a |

Absolute value | abs a | |a| |

Argument | arg a | atan2(im a, re a) |

Real part | re a | |

Imaginary part | im a | |

Floor: Next lower complex integer | floor a | floor re a + i floor im a |

Component-wise absolute value | cabs a | |re a| + i |im a| |

Polar-cordinates | polar a | abs a + i arg a |

Pi | pi | π = 3.141529... |

I | i | i2 = -1 |

E | e | e = 2.7182818... |

Derivative by z | a’ diff a | a b’ = (a*b)’ a ^ b’ = a ^ (b’) |

Newton method | newton a | z - a / a’ |

Nova (generalized Newton method) | nova a;R;p | z - R * a / a’ + p |

Horner-Scheme | horner a1;a2;...an | (...((z + a1) z + a2) z ... + an |

Polynom | poly a1;a2;...;an | (z-a1) (z-a2) ... (z-an) |

Mandelbrot | mandel a | a2 + c |

- LengthSmooth*: Logarithm of the number of interations + a smoothening factor (determined by linear interpolation of the logarithm of the last bailout values).
- Length*: Number of iterations.
- SumExp: Logarithm of the sum of exp(-|zi|-1/2(|zi-1 - zi|))
- SumDelta+: Logarithm of the sum of log |zi - zi-1|
- LastArc+: Angel of last point in the orbit. Angels are normalized to range from 0 to 360.
- Zero: 0

* These colorization methods usually do not give interesting results for coloring convergent orbits.

+ These colorization methods usually do not give interesting results for coloring escaping orbits.