POV-Ray : Newsgroups : povray.newusers : Quaternion fractals : Re: Quaternion fractals Server Time
29 Jul 2024 12:18:10 EDT (-0400)
  Re: Quaternion fractals  
From: Frango com Nata
Date: 11 Dec 2005 21:55:42
Message: <439ce6ae@news.povray.org>
Karl Anders wrote:
> Well, that might give some interesting pictures, but there is mathematical
> reason for "THE" Mandelbrot Set being the one with z(0) = 0; it's simply
> the only one with meaning - but you probably know that, don't you ;-)


connectivity of Julia sets? Otherwise, I don't know its mathematical 
meaning, yet I'd be all ears :)

> Talking about shortcomings of POV-Ray's incorporation of quaternions there
> is the additional problem that you can't choose the 3d-cut you want to see
> freely ( see the docs; w != 0  !!!), and that the pictures are distorted !
> Last point is easily seen by depicting sqr Julia with c=0; as with complex
> numbers, this defines a 4D-sphere regardless of iteration-depth, and any
> "plane" 3d-cut through a 4D-sphere is a 3D-sphere ( or a point or empty ).
> BUT you get ellipsoids ...

Well, according to the docs, what POV-Ray renders is not the 
3D-hyperplane section itself of the 4D Julia set, but its projection 


hyperplane which had a normal with a null fourth component would be 
orthogonal to the scene's space, and so would end up wholly mapped into 
a single 2D plane, with no volume, and probably devoid of almost all its 
neat geometric intricacies; more or less the same way a 2D picture's 
projection will be squashed into a line if its support plane is 
perpendicular to the image plane.

We can, nevertheless, recover a (rotated in 4D space) copy of every 3D 
section by any hyperplane with a non-zero normal's fourth component 
(even if it should be quite close to zero) by stretching its projection 
along the proper axis; for instance like so:

----------------------------------------------------------------------------

#declare SliceNormal=<2,-3,-1,1>;
#declare SliceOffset=0;

#include "transforms.inc"

julia_fractal{
   <-.2,.2,0,-.3>
   quaternion
   sqr
   max_iteration 200
   precision 100
   slice SliceNormal,SliceOffset
   #declare SliceNormalProj=<SliceNormal.x,SliceNormal.y,SliceNormal.z>;
   #if(vlength(SliceNormalProj)!=0)
     Axial_Scale_Trans(SliceNormalProj, 
sqrt(pow(vlength(SliceNormalProj),2)+pow(SliceNormal.t,2))/SliceNormal.t)
   #end
   pigment{rgb<0,1,0>}
}

----------------------------------------------------------------------------

If you substitute a zero quaternion Julia parameter in this code, you'll 
see the result is a sphere, no matter what SliceNormal you choose, 
provided its fourth component keeps far enough from zero not to 
challenge calculations' accuracy.


> Ah well, I fear that if we say too much, we will be asked to implement that
> ourselves or shut up - that has happened before to very small minorities
> asking for a lot of programmer's work - and rightfully so, I fear.

Well, this thread was by no means intended as a demand! I was just 
curious about the matter. And I'm looking forward to dive into the code 
that controls 4D Julia fractal rendering as soon as I learn C++ :))

> Have a nice weekend

Thanks :)

Regards.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.