POV-Ray : Newsgroups : povray.advanced-users : 3D Mandelbrot set Server Time
30 Jul 2024 12:19:35 EDT (-0400)
  3D Mandelbrot set (Message 11 to 13 of 13)  
<<< Previous 10 Messages Goto Initial 10 Messages
From: Peter Popov
Subject: Re: 3D Mandelbrot set
Date: 3 Nov 1999 16:09:41
Message: <A6IgOHjCsBvrQd3Al38R9V6WoZRz@4ax.com>
On 3 Nov 1999 11:00:24 -0500, Nieminen Juha
<war### [at] punarastascstutfi> wrote:

>Peter Popov <pet### [at] usanet> wrote:
>: #declare Rn = (R*R-I*I)+X;
>: #declare In = (2*R*I-J*J)+Y;
>: #declare Jn= (2*J*I+2*J*R)+Z;
>
>  Where does this formula come from? Is the formula for Jn just a randomly
>chosen one?
>  What's the bailout value?

According to Mark he came up with it. it more of a hack than anything
else, but it sure works darn good. Now here's the snippet of code from
Mark's program that does the iteration:

iter = 0;
r = X; i = Y; j = Z;
while(iter < maxiter && ((r*r)+(i+i)+(j*j)) <= 4)
{
	rn = ((r*r)-(i*i))+X;
	in = ((2*r*i)-(j*j))+Y;
	j  = ((2*i*j)+(2*r*j))+Z;
	r  = rn;
	i  = in;
	iter++;
}

So you see the bailout is 4, as usual (but you can always change it or
leave it to the user)




Peter Popov
ICQ: 15002700


Post a reply to this message

From: Mark Wagner
Subject: Re: 3D Mandelbrot set
Date: 4 Nov 1999 01:06:53
Message: <3821227d@news.povray.org>
Nieminen Juha wrote in message <38205c18@news.povray.org>...
>Peter Popov <pet### [at] usanet> wrote:
>: #declare Rn = (R*R-I*I)+X;
>: #declare In = (2*R*I-J*J)+Y;
>: #declare Jn= (2*J*I+2*J*R)+Z;
>
>  Where does this formula come from? Is the formula for Jn just a randomly
>chosen one?
>  What's the bailout value?


I got J by deciding that J is equal to the square root of -i, and working
from there.  The bailout I used was 2 (actually, the formula uses 2^2 as
that is faster than finding a square root), however you may want to use a
higher value.

Mark


Post a reply to this message

From: Nieminen Juha
Subject: Re: 3D Mandelbrot set
Date: 4 Nov 1999 03:30:58
Message: <38214442@news.povray.org>
Peter Popov <pet### [at] usanet> wrote:
: while(iter < maxiter && ((r*r)+(i+i)+(j*j)) <= 4)
                                   ^
  + ?

-- 
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/


Post a reply to this message

<<< Previous 10 Messages Goto Initial 10 Messages

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