Fractal Software > Programming

 Inverse Zooming

(1/2) > >>

While working with the complex plane stereographically projected onto the Riemann sphere, I came across a new(?) and simple way to soup up zoom animations.

As usual, select a target destination location and, per animation frame, prepare coordinates for a view rectangle. But before you start the Mandelbrot (or other complex fractal) iterations, perform an inversion on a circle which is fixed in view coordinates (typically centered in the view rectangle).

A few formulas for clarification. For simplicity, I will assume we have a square view rectangle, and the screen coordinates for both X and Y are from the interval -1 to 1.

Usually you have some linear mappings (per animation frame) from screen coordinates into the complex plane

  s1*x + b1, s2*y + b2

which effectively perform the zoom to destination.

Before you map from view to complex plane, you can do a circle inversion like this:

  x1 = x/(x*x + y*y), y1 = y/(x*x + y*y)

This is almost a complex reciprocal, except for a sign flip of the imaginary part (getting more complicated for a general view rectangle, but you get the idea). After this inversion, perform the linear mapping of pixel coordinates and iterate the fractal.

  x2 = s1*x1 + b1, y2 = s2*y1 + b2, ... iterate(x2, y2)

The inversion has sent the zoom target out to infinity, so as we zoom in, new detail will creep inward from the picture boundary. In the view's  center, there is now a black hole at infinity, which attracts and swallows everything as we animate along the zoom path. Nevertheless, the final frame of the animation should still be filled with the shapes and structures of the zoom target.

All existing coloring modes should work as before. I think even the highly effective acceleration with logarithmic polar coordinates (for straight zooms) can be adapted for this inversion. But I cannot guess if perturbation numerics will survive an inversion.

Thus far I only tested a more complicated method that looks at the Riemann sphere's pole, i.e. the neighborhood around infinity. But I think a simple sphere inversion should be artistically equivalent to a series of two appropriate stereographic projections.


zoomasm works from exponential map keyframes and has options to reverse keyframe order and/or invert them vertically, which I think gives this effect (via e^(k-r) = e^k/e^r). It also has a 360 projection which gives regular zoom in effect at one pole and inverted effect at the opposite pole.

Excellent! So it isn't new, but known to indeed work with logarithmic polar coordinates. ^-^

I apologize for the commotion.

Here is an example vid I found where zooming out is really zooming in:


Yep, that video is an example of exactly what I meant. Thank you very much for digging it up!


[0] Message Index

[#] Next page

Go to full version
Powered by SMFPacks Rates (Facepunch) Mod
Powered by SMFPacks SEO Pro Mod | Sitemap
Powered by Advanced Topic Prefix Pro
Powered by SMFPacks Advanced Attachments Uploader Mod