Xref: unixg.ubc.ca alt.fractals:2843 bit.listserv.frac-l:1258 Path: unixg.ubc.ca!ubccs!utcsri!rutgers!zeus.ieee.org!europa.asd.contel.com!darwin.sura.net!spo ol.mu.edu!uwm.edu!bionet!raven.alaska.edu!news.u.washington.edu!milton.u. washington.edu!jesjones From: jesjones@milton.u.washington.edu (Jesse Jones) Newsgroups: alt.fractals,bit.listserv.frac-l Subject: Fractal paper #3: Escape Time Fractals Summary: Lists a bunch of formulas for escape time fractals. Keywords: Fractal Escape Time Mandella Message-ID: <1992Sep18.215606.9739@u.washington.edu> Date: 18 Sep 92 21:56:06 GMT References: <1992Sep17.225337.11933@u.washington.edu> Sender: news@u.washington.edu (USENET News System) Organization: University of Washington, Seattle Lines: 242 Fractal Formula's 1.0 by Jesse Jones ABOUT THIS FILE This file describes the escape time fractals implemented in a Mac program called Mandella. These fractals are from various sources. Many came from the IBM program FracInt. I assume readers know how the classic Mandelbrot fractal works. The below fractals are all quite similiar to the Mandelbrot fractal. The only differences are in the formula and sometimes the bailout criteria. If you don't know how to implement the Mandelbrot fractal check out one of the references below. If you're unfamiliar with complex math I'd be happy to mail you a library of complex math routines. MANDELBROT AND JULIA FRACTALS For Mandelbrot fractals z is inited to zero and c is inited to a point on the complex plane. For Julia fractals z is inited to a point on the plane and c is a constant. Some fractals use a second complex constant, lambda (l). In the bailout tests below mag = z.r*z.r + z.i*z.i. Also wherever a test like z.r > 5000 is given ABS(z.r) should be used. Finally z = 1 should be done something like this: (ABS(1 - ABS(z.r)) < epsilon) AND (ABS(z.i) < epsilon) where epsilon is say 10^-16. Name Classic 5000 Formula z^2 + c Bailout mag > Four 5000 z^4 + c mag > Sqrt 5000 Sqrt(z^4) + c mag > Power 5000 z^ROUND(l.r) + c mag > GenPower 5000 z^l + c mag > PiPwr 5000 z^PI + c mag > EPwr 5000 z^e + c mag > Cosine 5000 l*Cos(z) + c z.i > Sine 5000 l*Sin(z) + c z.i > Exp 5000 l*Exp(z) + c z.r > Cosh 5000 l*Cosh(z) + c z.r > Sinh 5000 l*Sinh(z) + c z.r > SinExp 5000) OR Sin(z) + Exp(z) + c (z.r > (z.i > 5000) SinZSqr 5000 z^2 + Sin(z) + c z.i > Lambda 5000 c*z^2 + c mag > Manowar 5000 Init: w = z mag > Iterate: oldZ := z z := z^2 + w + c w := oldZ Mark 5000 (c^ROUND(l.r))*z^2 + c mag > GenMark 5000 (c^l)*z^2 + c mag > Potts1 10^16) OR [(z^2 + c - 1)/ (mag > (2*z + c - 2)]^2 (z = 1) (num/denom)^2 (mag > num = z^3 + 3*(c - 1)*z + (c - 1)*(c - 2) denom = 3*z^2 + 3*(c - 2)*z + c^2 - 3*c + 3 (z = 1) Potts2 10^16) OR Barnsley1 1e6 Barnsley2 1e6 Barnsley3 1e6 (z - 1)*c z.r >= 0 (z + 1)*Conj(c) z.r < 0 (z - 1)*c z.r*c.i + c.r*z.i >= 0 (z + 1)*c otherwise (z.r^2 - z.i^2 - 1) + i*(2*z.r*z.i) z.i > z.r >= 0 z.i > z.i > (z.r^2 - z.i^2 - 1) + c.r*z.r + i*(2*z.r*z.i + c.i*z.r) OTHER FRACTALS For these fractals z starts off being a point in the complex plane. c and l are complex constants. Name Phoenix 5000 Initialization y := 0 Formula temp := c.i*y Bailout Mag(x) > x := z y := x x := x^2 + temp + c.r Tetrate 5000 pt := z z := pt^z mag > Spider 5000 w := z z := z^2 + w + l mag > w := w/2 + z Glass 5000 w := z w*z*(1 - z) mag > zprev := 0 temp := z mag > lambda := 0 z := z^2 + zprev z := .5 Noel1 5000 zprev := temp Noel2 zp1 := 0 zp2 := 0 temp := z z := z^2 - zp2 mag > 5000 zp2 := zp1 zp1 := Conj(temp) NEWTON FRACTALS The Newton fractals all have a similiar form. They iterate an equation like z := z - p(z)/p'(z) where p'(z) is the derivative of p(z). The bailout criteria I used was ABS(p.r) + ABS(p.i) < epsilon where p := p(z). Newton3 is my favorite fractal. I've gotten some killer images using decomposition. Name Newton1 Initialization Newton2 Newton3 Formula z := z - p(z)/[p'(z) + c*i] p(z) = (z - 1)*(z + 0.5)*(z^2 + 1) z := z - p(z)/[p'(z) + c*i] p(z) = (z - 1)*(z^2 + z + 0.5) k = 0.25 - z^2 z := 0 z := z - p(z)/[p'(z) + l*i] p(z) = (z - 1)*(z^2 + z + k) NewtonPwr z := z - p(z)/p'(z) p(z) = z^l + c NewtonExp z := z - p(z)/p'(z) p(z) = Exp(z) + c HALLEY FRACTALS Halley fractals are just like Newton fractals. The only difference is in the formula: z := z - 2*f(z)*f'(z)/[2*f'(z)*f'(z) - f''(z)*f(z)]. The bailout condition is normally identical to the Newton fractals (i.e. f(z) near zero). I use a slightly different test from Pickover. The test is ABS(Mag(z) Mag( oldZ)) < epsilon. This adds a bit more texture to the images. Name Halley1 Formula f(z) = z^(a+1) - z Halley2 f(z) = 64*z^7 - 112*z^5 + 56*z^3 - 7*z 4D FRACTALS It's possible to calculate fractals using numbers called "quaternions". These are an extension of complex numbers. Instead of a number pair we use four numbers. Usually one of these numbers is fixed and the other three are varied to produce a true 3D fractal. Mandella takes the easy way out and fixes two of the numbers to produce a standard 2D fractal. Quaternions are multiplied like so: From "Differential Geometry",H.W.Guggenheimer, Dover, p. 94: (x, y, z, u) * (a, b, c, d) = (X, Y, Z, U), X = ax - by - cz - du Y = bx + ay + dz - cu Z = cx - dy + az + bu U = dx + cy - bz + au So, z^2 = X Y Z U = = = = xx - yy - zz - uu 2xy 2xz 2xu The formula Mandella uses is z := z^2 + c. The first two coordinates of z are set to a point in the plane. The second two are set to l. The constant c is taken to be a quaternion with the third and fourth coordinates also set to l. The bailout condition is Mag(z) > 1000. CHANGES 1) Modified Barnsley1 and Barnsley2 formulas so they match FractInt. 2) Eliminated MarkPwr formula. 3) Added Lambda, Manowar, Mark, and GenMark formulas from FractInt. REFERENCES [1] Barnsley, Michael. Fractals Everywhere Academic Press Inc. ISBN 0-12-079062-9. This is an excellent text book on fractals. This is probably the best book for learning about the math underpinning fractals. It is also a good source for new fractal types. [2] Dewdney, A.K. Computer Recreations Scientific American. August 1985. This is the article that started people writing fractal programs for microcomputers. Dewdney also presented a lot of other neat ideas in other columns. Unfortunately Dewdney no longer has a column in Sci Am. [3] Dewdney, A.K. Computer Recreations Scientific American. November 1987. Follow up to above, describes the Julia Set. [4] Dewdney, A.K. The Armchair Universe. New York: W.H. FreeMan and Company. ISBN 0-7167-1928-X. This book is a collection of Dewdney's Scientific American articles. It includes the original Mandelbrot article [2] and an article and the "wallpaper" article describing a dynamical system called "Hopalong". [5] Mandelbrot, Benoit. The Fractal Geometry of Nature. New York: W.H. FreeMan and Company. ISBN 0-7167-1186-9. In this book Mandelbrot attempts to show that reality is fractal-like. He also has pictures of many different fractals. [6] Mathews, John. Complex Variables for Mathematics and Engineering. Wm. C. Brown Publishers ISBN 0-697-06764-5. This is the textbook I used to write my complex math routines. [7] Peitgen, H.O. and Richter, P.H. The Beauty of Fractals New York: Springer-Verlag Inc. ISBN 0-387-15851-0. Lots of neat pictures. There is also an appendix giving the coordinates and constants for the color plates and many of the other pictures. [8] Edited by Peitgen, Heinz-Otto and Saupe, Deitmar. The Science of Fractal Images New York: Springer-Verlag. This book was reviewed in the December 1988 Byte. It is based on a short course presented at SIGGRAPH '87. It contains many color and black and white photographs, high level math, and algorithms for things like continuous potential and 3D transforms. [9] Pickover, Clifford. Computers, Pattern, Chaos and Beauty. New York: St. Martins Press. ISBN 0-312-04123-3. This is a great book with a wide variety of fun things to do with computer graphics. It includes biomorphs, composite formula fractals, Halley fractals, and dynamical systems. [10] Stevens, Roger. Fractal Programming in C M&T Publishing. ISBN 1-55851-038-9. This is a good book for a beginner who wants to write a fractal program. Half the book is on fractal curves like the Hilbert curve and the von Koch snow flake. The other half covers the Mandelbrot, Julia, Newton, and IFS fractals. Unfortunately Stevens has virtually nothing on advanced features. ADDRESS Jesse Jones Usenet: jesjones@milton.u.washington.edu CServe: 73627,152