|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |