Fractals/unroll

Unrolling is an example of plane transformation

=name=
 * wrap and unwrap
 * rolling and unrolling
 * a curve
 * a surface
 * fold and unfold
 * Moebius mapping

=Examples=

circle

 * unrolling the circumference of a unit circle o see how long it is
 * "Unrolling these circles fills a triangle with base 2 π r and height r (where r is the radius of the filled disk). Such a triangle has area π r². This does not serve as a complete proof for why this is the area of a circle, but can give you some intuition for why it should be." Matthen

Image magic:

convert sun.jpg +distort DePolar 0 result.jpg

ellipse

 * Rolling ellipses of different dimensions to measure their perimeters

cardioid
To unroll the cardioid do:
 * cardioid to circle transforamtion
 * unroll the circle

history

 * 1988 : Heinz-Otto Peitgen, Dietmar Saupe, Yuval Fisher, & 5 more in book "The Science of Fractal Images" : "A region along the cardioid is continuously blown up and stretched out, so that the respective segment of the cardioid becomes a line segment. ... Our blow-up factor is chosen accordingly to the result that all disks in Figure 4.22 have the same size."
 * Linas Vepstas 2000
 * Claude Heiland-Allen 2013

algorithm
This image is made using algorithm described by Claude Heiland-Allen

The main idea here is choose 3 points on the base image (P0, P1, Pinf) which define a circle, and map them respectively to 0., 1., inf. ( Geoffroy Billotey)

Figure 4.22 on pages 204-205 of the book titled : "The Science Of Fractal Images" by Heinz-Otto Peitgen and D. Saupe has description: A region along the cardioid is continuously blown up and stretched out, so that the respective segment of the cardioid becomes a line segment. ... Our blow-up factor is chosen accordingly to the result that all disks in Figure 4.22 have the same size.

transformation from line, thru half of the circle, to half of the cardioid

There are 3 complex planes :
 * k-plane ( where are lines) in Claude Heiland-Allen notation
 * w-plane ( where are circles)
 * c-plane ( for cardioid )

2 steps from k-plane to c-plane:
 * from k plane go to w plane using Moebius transformation fi
 * from w plane go to the c plane using  conformal map gi

$$w = f_i(k) $$

$$c = g_i(w) $$

so :

$$c = g_i( f_i ( k)) $$

Maxima CAS src code
z(%i1) k:x+y*%i; (%o1) %i*y+x (%i2) fi(k):=(-%i-k)/(%i-k); (%o2) fi(k):=−%i−k/%i−k (%i3) gi(w):=w/2-w*w/4; (%o3) gi(w):=w/2−(w*w)/4 (%i4) gfi(k):=gi(fi(k)); (%o4) gfi(k):=gi(fi(k)) (%i5) c:gfi(k)$ How to compute c from k without using CAS : (%i6) ratsimp(realpart(c)); (%o6) (y^4−4*y^3+(2*x^2+2)*y^2+(4−4*x^2)*y+x^4+6*x^2−3)/(4*y^4−16*y^3+(8*x^2+24)*y^2+(−16*x^2−16)*y+4*x^4+8*x^2+4) (%i7) ratsimp(imagpart(c)); (%o7) −(2*x*y−2*x)/(y^4−4*y^3+(2*x^2+6)*y^2+(−4*x^2−4)*y+x^4+2*x^2+1)

Check the gfi function with some known values : (%i8) gfi(0); (%o8) −3/4 (%i12) gfi(%i/3); (%o12) −2

Compare with

 * shadertoy : The trees are breathing by jld
 * shadertoy : Mandelstrip by jid
 * Mandelbrot Set - Convergent Evolution of P/Q Limbs in Seahorse Valley by izaytsev0
 * elephants (demo 2 page 10) ? There is just a rotation and rescaling on a small region instead of the non-linear transformation." See program Mandel by Wolf Jung demo 2 page 10
 * Mandelbrot Buds and Branches by Timothy Chase
 * Fractalshades examples: Moebius mapping

=See also=
 * Loop unrolling in wikipedia
 * slow mating of quadratic julia sets by Claude

=References=