Welcome to Fractal Forums

Fractal Software => Mandelbulb 3d => Topic started by: ericr on February 28, 2016, 06:33:36 PM




Title: Conformal mapping
Post by: ericr on February 28, 2016, 06:33:36 PM
It is possible to make à conformal transformer on a rieaman sphère
Like thé new type on mandelbulder

I use thé formulas fond on book but no...


Title: Re: Conformal mapping
Post by: Weber on February 28, 2016, 09:29:14 PM
I made something similar.  It's discussed in this thread: http://www.fractalforums.com/mandelbulb-3d/how-to-make-a-sphere/


Title: Re: Conformal mapping
Post by: hobold on February 28, 2016, 11:06:17 PM
The riemann sphere and the complex plane are related by a "stereographic projection". Stereographic projection is itself conformal. This means one can project from the riemann sphere to the complex plane, then do any conformal mapping in the plane, and finally project back to the sphere. The concatenation of these three transforms would result in a conformal mapping on the riemann sphere.

Another variant is to move between different spheres. Project from sphere A to the complex plane, then project from the complex plane to another sphere B. That results in a conformal mapping between spheres A and B. This can be used to do conformal "warps" of spherical coordinate systems:

(http://vectorizer.org/rmdltc/polemove02.gif)

In this example, the first sphere is covered with the usual coordinate system. This is projected on the plane. From there, coordinate lines are projected back to a sphere of larger radius. The result is that north pole and south pole are no longer located opposite to each other. Coordinate lines are still orthogonal to each other, except at the poles, because the overall mapping is conformal.

(Sidenote: the above is not an interpolation between the usual bipolar spherical coordinates and the monopolar coordinates as used in the Riemandelettuce. This particular trick can make the distance between the two poles arbitrarily small, but the coordinate system breaks down when both poles are on top of each other.)


Title: Re: Conformal mapping
Post by: mclarekin on February 28, 2016, 11:45:49 PM

It is  Msltoes code //http://www.fractalforums.com/new-theories-and-research/another-way-to-make-my-riemann-sphere-'bulb'-using-a-conformal-transformation/
but without his cool coloring.

Mandelbulber code is still a work in progress, but when complete, I could write the formula part into a m3f, for someone else to complete.


@hobold, the animation  has made it much clearer to me :beer:. I like to be able to visualize what is happening. :)




Title: Re: Conformal mapping
Post by: ericr on February 29, 2016, 11:19:41 AM
the animation is very good
all is on it
 but if the formula are  ( comming form a book)
(2u;2v;u^2+v^2-1)/(u^2+v^2+1)

A program it and it's not good!!!!!!!!! :fiery:


Title: Re: Conformal mapping
Post by: hobold on February 29, 2016, 01:01:43 PM
Glad you like the visualization! :)

I had stumbled over this in an obscure paper on cartography not too long ago. I was already in the process of producing imagery when the topic came up here. I wanted to gain some insight if maybe these tweaked coordinates were interesting for more fractal relatives to the Mandelbulb.

Below is the code of the transformation formulas I used. The idea is to start from a smaller sphere with radius between zero and one, project to the plane, then project back to a larger sphere of radius one. The lower the radius of the first sphere, the closer the poles move towards each other.


/////////////////////////////////////////////////////////////
// stereographic projection from sphere to plane           //
// plane is: x = 0                                         //
// sphere touches in (0,0,0), is in x <= 0 halfspace       //
// projection center is sphere point opposite touch point  //
// inputs: sphere radius, point on sphere                  //
// output: projected point on plane                        //
/////////////////////////////////////////////////////////////
Vec3 sphereToPlane(const double R, const Vec3& P) {
  const double scale = (R + R)/P.x;
  return Vec3(0.0, scale*P.y, scale*P.z);
}

///////////////////////////////////////////////////////////////////////
// stereographic projection from plane to sphere                     //
// plane is: x = 0                                                   //
// sphere touches in (0,0,0), is in x <= 0 halfspace, has radius 1.0 //
// projection center is sphere point opposite touch point            //
// inputs: point on plane                                            //
// output: projected point on sphere                                 //
///////////////////////////////////////////////////////////////////////
Vec3 planeToSphere(const Vec3& P) {
  /*
    b := (-2.0, 0.0, 0.0);     ray base
    d := (2.0, P.y, P.z);      ray direction   
    =>
    (x,y,z) := b + t*d;
   
    (x + 1)^2 + y^2 + z^2 - 1 = 0;    sphere equation
    =>
    (x + 1)*(x + 1) + y*y + z*z - 1 = 0;
   
    x := -2.0 + t*2.0;
    y := t*P.y;
    z := t*P.z;
   
    substitute into sphere equation:
    (-1.0 + t*2.0)*(-1.0 + t*2.0) + t*P.y*t*P.y + t*P.z*t*P.z - 1 = 0;

    solve((-1.0 + t*2.0)*(-1.0 + t*2.0) + t*P.y*t*P.y + t*P.z*t*P.z - 1 = 0,t);

                                     4
(%o1)                [t = -----------------------, t = 0]
                                 2          2
                          (P . z)  + (P . y)  + 4
   
    so the relevant solution:
   
    t = 4.0/(P.z*P.z + P.y*P.y + 4.0);
   */

  const double t = 4.0/(P.z*P.z + P.y*P.y + 4.0);
  return Vec3(t*2.0 - 2.0,
              t*P.y,
              t*P.z);
}


The "solve" command in the comments above is Maxima code (the free and old-fashioned computer algebra system that I keep plugging every now and then, http://maxima.sourceforge.net ). The visualisation a few postings above was rendered with the Persistence of Vision Raytracer (a free and old-fashioned 3D computer graphics renderer, http://www.povray.org ). The grid lines are tori, determined by the fact that three points uniquely define a circle (so I projected three points per grid line, then computed the resulting circumcircle from that triangle).


Title: Re: Conformal mapping
Post by: ericr on February 29, 2016, 04:44:38 PM
i have do that
and I hope...
i make a jit formula with the formulas above. But i am not sur of me !!!!
i give the fractal in 2d a juila

 please , I have need of a right or wrong criticism
thx