|
|
>
> I think you could do it using the select() feature to just stop
> computation past a certain point...it would still "recurse", but the
> additional levels wouldn't have to do anything. It would be horribly
> complex, slow, and ugly, and would be limited to a low number of
> recursions, but I think it is "possible".
>
I dont understand why it would still "recurse" after one select() did not
pick the next select() but for example 0.
Post a reply to this message
|
|
|
|
In article <3d9a074c@news.povray.org>, "Simon Adameit" <gom### [at] gmxde>
wrote:
> I dont understand why it would still "recurse" after one select() did not
> pick the next select() but for example 0.
Eh, right. That code is still there, just most of the work is done at
parse time, and not all of it will execute. And there is a lot more code
than the equivalent recursive function, it could probably go above the
limit pretty easily.
--
Christopher James Huff <cja### [at] earthlinknet>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: chr### [at] tagpovrayorg
http://tag.povray.org/
Post a reply to this message
|
|
|
|
Simon Adameit wrote:
>
>Its slow but it can be done:
>
>camera{
> location -z
> look_at 0
>}
>
>#declare MaxIter = 5;
>
>#macro _Zr(n,I)
> #if(n<I)
> (_Zr(n+1,I)*_Zr(n+1,I)-_Zi(n+1,I)*_Zi(n+1,I)+Re)
> #else
> (Zr*Zr-Zi*Zi+Re)
> #end
>#end
>
>#macro _Zi(n,I)
> #if(n<I)
> (2*_Zr(n+1,I)*_Zi(n+1,I)+Im)
> #else
> (2*Zr*Zi+Im)
> #end
>#end
>
>#macro MakeFun(n)
> select(n<MaxIter & _Zr(0,n)*_Zr(0,n)+_Zi(0,n)*_Zi(0,n)<4, 0, n,
> #if(n<MaxIter)
> MakeFun(n+1)
> #else
> 0
> #end
> )
>#end
>
>#declare MandIter=
>function(Re, Im, Zr, Zi, n){
> MakeFun(0)
>}
>
>#declare Mandel = function { MandIter(x, y, x, y, 0)/MaxIter }
>
>plane{z,0
> pigment{ function { Mandel(x,y,z) }
> color_map { [0 rgb z*.5][1 rgb <.5,.75,1>][1 rgb 0] }
> scale 0.3
> }
> finish { ambient 1 }
>}
>
Thank you for this code. =)
It's a bit too slow but it's nice to see it can be done.
I think I'll use other fractal programs and import the pictures to POV when
I need them.
If you want challenge make a code that can recurse any fractal. Like 2^z+c
etc.
Post a reply to this message
|
|
|
|
On Tue, 1 Oct 2002 21:43:52 +0200, "Simon Adameit" <gom### [at] gmxde>
wrote:
>
>"Warp" wrote:
>>
>> The number of recursions done depends on the given coordinates and thus
>> is not fixed.
>>
>
>Its slow but it can be done:
Sure eats a lot of memory fast, 5 iteratations take 5 MB, 10 makes
function too complex.
/Erkki
Post a reply to this message
|
|