POV-Ray : Newsgroups : povray.general : Mandelbrot page Server Time
8 Aug 2024 12:18:10 EDT (-0400)
  Mandelbrot page (Message 11 to 20 of 26)  
<<< Previous 10 Messages Goto Latest 10 Messages Next 6 Messages >>>
From: Sander Stols
Subject: Re: Mandelbrot page
Date: 24 Jan 2001 09:22:23
Message: <MPG.14d902e6781f60259896d6@NEWS.POVRAY.ORG>
In article <3a6edafc$1@news.povray.org>, tom### [at] tomandlucouk says...
> IMHO, no. Each point is either inside or outside the set. The boundary has
> no special significance in that sense. The only point about the boundary is
> that it represents the area of least certainty - you can never be sure if,
> with one more iteration, a point might suddenly turn out to be outside the
> set.
Hm, it seems I will have to read more about this subject. The only 
somewhat thorough and also difficult book I have is the one by Peitgen 
and Richter :-))
-- 
Regards,  Sander


Post a reply to this message

From: Warp
Subject: Re: Mandelbrot page
Date: 24 Jan 2001 10:04:28
Message: <3a6eeefc@news.povray.org>
Tom Melly <tom### [at] tomandlucouk> wrote:
: Doh! Many thanks - fixed it now.

:             #declare TReal = ((TReal * TReal) - (TImaginary * TImaginary));
:             #declare TImaginary = (2 * T2Real * TImaginary);
:             #if(((TReal * TReal) + (TImaginary * TImaginary)) > 4)
                 ...
:             #end
:             #declare TReal = TReal + Real;
:             #declare TImaginary = TImaginary + Imaginary;

  You are here actually calculating first Z=Z^2, then looking if |Z| > 2
and then calculating Z=Z+c.
  Now, this is interesting. Does this work? In theory you should calculate
Z=Z^2+c first and then see if |Z| > 2.

-- 
char*i="b[7FK@`3NB6>B:b3O6>:B:b3O6><`3:;8:6f733:>::b?7B>:>^B>C73;S1";
main(_,c,m){for(m=32;c=*i++-49;c&m?puts(""):m)for(_=(
c/4)&7;putchar(m),_--?m:(_=(1<<(c&3))-1,(m^=3)&3););}    /*- Warp -*/


Post a reply to this message

From: Warp
Subject: Re: Mandelbrot page
Date: 24 Jan 2001 10:07:06
Message: <3a6eef9a@news.povray.org>
Tom Melly <tom### [at] tomandlucouk> wrote:
: IMHO, no.

  Remove that "IMHO" because you are right.
  Every point painted in "black" is part of the set. The set is defined as
each complex number that fullfills the formula. All the points painted in
black fullfill the formula, thus they belong to the set.

-- 
char*i="b[7FK@`3NB6>B:b3O6>:B:b3O6><`3:;8:6f733:>::b?7B>:>^B>C73;S1";
main(_,c,m){for(m=32;c=*i++-49;c&m?puts(""):m)for(_=(
c/4)&7;putchar(m),_--?m:(_=(1<<(c&3))-1,(m^=3)&3););}    /*- Warp -*/


Post a reply to this message

From: Fabien Mosen
Subject: Re: Mandelbrot page
Date: 24 Jan 2001 10:09:18
Message: <3A6EEFCA.EC43FA89@skynet.be>
BTW, why not use the complex numbers feature in MegaPOV ?

Fabien.


Post a reply to this message

From: Warp
Subject: Re: Mandelbrot page
Date: 24 Jan 2001 10:12:16
Message: <3a6ef0d0@news.povray.org>
Fabien Mosen <fab### [at] skynetbe> wrote:
: BTW, why not use the complex numbers feature in MegaPOV ?

  Why not, indeed.
  If the programming language used supports directly complex numbers, then
the code can be simplified a bit.

  For an example, see:
http://iki.fi/warp/MandScripts/matlab.html

-- 
char*i="b[7FK@`3NB6>B:b3O6>:B:b3O6><`3:;8:6f733:>::b?7B>:>^B>C73;S1";
main(_,c,m){for(m=32;c=*i++-49;c&m?puts(""):m)for(_=(
c/4)&7;putchar(m),_--?m:(_=(1<<(c&3))-1,(m^=3)&3););}    /*- Warp -*/


Post a reply to this message

From: Greg M  Johnson
Subject: Re: Mandelbrot page
Date: 24 Jan 2001 10:29:15
Message: <3A6EF35E.3E2188EA@my-dejanews.com>
I think the pov code for making Mandel patterns is very cool, I like doing
multiple-OoM zooms on it.

Q's:
1. Can you zoom on that ASCII code?

2. Programs like Tierazon are really cool in that they let you plug in your
own equations.  How close is Tom's code to making one's own *pattern*  for
one's own original complex math?


Post a reply to this message

From: Warp
Subject: Re: Mandelbrot page
Date: 24 Jan 2001 10:41:56
Message: <3a6ef7c4@news.povray.org>
Greg M. Johnson <gre### [at] my-dejanewscom> wrote:
: How close is Tom's code to making one's own *pattern*  for
: one's own original complex math?

  Megapov supports function patterns which you can use to create your
own patterns.
  However, Mandelbrot-type patterns are not possible with the current
implementation since the functions don't support variables nor loops.
  Making a Mandelbrot pattern with a pattern function would require something
like this:

#declare Mandel =
  function
  { Zr=x; Zi=y; n=0;
    while(n<=30 & sqr(Zr)+sqr(Zi)<4)
    { Zi2=sqr(Zi);
      Zi=2*Zr*Zi+x;
      Zr=sqr(Zr)-Zi2+y;
    }
    n/30
  }

  Until functions support variables and while-loops we are out of luck.

  Perhaps shaders are the answer?

-- 
char*i="b[7FK@`3NB6>B:b3O6>:B:b3O6><`3:;8:6f733:>::b?7B>:>^B>C73;S1";
main(_,c,m){for(m=32;c=*i++-49;c&m?puts(""):m)for(_=(
c/4)&7;putchar(m),_--?m:(_=(1<<(c&3))-1,(m^=3)&3););}    /*- Warp -*/


Post a reply to this message

From: Tom Melly
Subject: Re: Mandelbrot page
Date: 24 Jan 2001 10:57:29
Message: <3a6efb69@news.povray.org>
"Warp" <war### [at] tagpovrayorg> wrote in message
news:3a6eeefc@news.povray.org...
> Tom Melly <tom### [at] tomandlucouk> wrote:
> : Doh! Many thanks - fixed it now.
>
> :             #declare TReal = ((TReal * TReal) - (TImaginary *
TImaginary));
> :             #declare TImaginary = (2 * T2Real * TImaginary);
> :             #if(((TReal * TReal) + (TImaginary * TImaginary)) > 4)
>                  ...
> :             #end
> :             #declare TReal = TReal + Real;
> :             #declare TImaginary = TImaginary + Imaginary;
>
>   You are here actually calculating first Z=Z^2, then looking if |Z| > 2
> and then calculating Z=Z+c.
>   Now, this is interesting. Does this work? In theory you should calculate
> Z=Z^2+c first and then see if |Z| > 2.
>

Hmm, well it seems to work - if you run the code in POV it produces what
appears to be a Mandelbrot in ascii wherever debug is ending up.

Swapping them around to:

             #declare TReal = ((TReal * TReal) - (TImaginary * TImaginary));
             #declare TImaginary = (2 * T2Real * TImaginary);
             #declare TReal = TReal + Real;
             #declare TImaginary = TImaginary + Imaginary;
             #if(((TReal * TReal) + (TImaginary * TImaginary)) > 4)
                ...
             #end

seems to produce the exact same pattern - still, at this resolution who
knows? ... ;).

Thinking about it, it's not that surprising. A tendancy towards infinity
will show up in either case - presumably, my Mandelbrot outline has some
differences from having deferred the re-addition of the original real and
imaginary number, but you'd need much higher res. to see it.

Wee! - I love Mandelbrots. Why? Firstly, you can make them with schoolboy
maths. Secondly, imaginary numbers that turn into real numbers when you
square them are funny.


Post a reply to this message

From: Tom Melly
Subject: Re: Mandelbrot page
Date: 24 Jan 2001 11:14:46
Message: <3a6eff76$1@news.povray.org>
"Greg M. Johnson" <gre### [at] my-dejanewscom> wrote in message
news:3A6EF35E.3E2188EA@my-dejanews.com...
> I think the pov code for making Mandel patterns is very cool, I like doing
> multiple-OoM zooms on it.
>
> Q's:
> 1. Can you zoom on that ASCII code?
>

Yes, try changing the opening params to:

#declare XStart = -1.5;
#declare XEnd = -1;
#declare YStart = 0;
#declare YEnd = 0.5;

Also, with my error, at this resolution the mandel is not so good, so change
the code I posted from:

      #declare TReal = TReal + Real;
      #declare TImaginary = TImaginary + Imaginary;
      #if(((TReal * TReal) + (TImaginary * TImaginary)) > 4)
        #declare Inside = false;
        #declare Counter = Iterations;
      #end
      #declare TReal = TReal + Real;
      #declare TImaginary = TImaginary + Imaginary;
      #declare Counter = Counter + 1;


to:

      #declare TReal = TReal + Real;
      #declare TImaginary = TImaginary + Imaginary;
      #declare TReal = TReal + Real;
      #declare TImaginary = TImaginary + Imaginary;
      #if(((TReal * TReal) + (TImaginary * TImaginary)) > 4)
        #declare Inside = false;
        #declare Counter = Iterations;
      #end
      #declare Counter = Counter + 1;


Post a reply to this message

From: Tom Melly
Subject: Re: Mandelbrot page
Date: 24 Jan 2001 11:23:29
Message: <3a6f0181$1@news.povray.org>
"Tom Melly" <tom### [at] tomandlucouk> wrote in message
news:3a6eff76$1@news.povray.org...

> Also, with my error, at this resolution the mandel is not so good, so
change

Oops - make that

from:
      #declare TReal = ((TReal * TReal) - (TImaginary * TImaginary));
      #declare TImaginary = (2 * T2Real * TImaginary);
      #if(((TReal * TReal) + (TImaginary * TImaginary)) > 4)
        #declare Inside = false;
        #declare Counter = Iterations;
      #end
      #declare TReal = TReal + Real;
      #declare TImaginary = TImaginary + Imaginary;
      #declare Counter = Counter + 1;

to:
      #declare TReal = ((TReal * TReal) - (TImaginary * TImaginary));
      #declare TImaginary = (2 * T2Real * TImaginary);
      #declare TReal = TReal + Real;
      #declare TImaginary = TImaginary + Imaginary;
      #if(((TReal * TReal) + (TImaginary * TImaginary)) > 4)
        #declare Inside = false;
        #declare Counter = Iterations;
      #end
      #declare Counter = Counter + 1;


Post a reply to this message

<<< Previous 10 Messages Goto Latest 10 Messages Next 6 Messages >>>

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