![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Dave Matthews
Subject: Some interesting 2D Mandelbrots [70 k, 95 k, 50 k, 70 k]
Date: 5 Jul 2005 11:38:12
Message: <42caa964@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
As if POVRay didn't have 2 zillion features that I'll never live to
discover, I'll toss another on the "wish list:" Support for
complex-valued functions. Although it's not a real high priority, I'm
guessing.
I was playing around with some interesting Mandelbrot sets using Flarium
(an apparently deceased freeware fractal program) and wanted to recreate
the images with POVRay. The two families are z(N+1) = (sin(zN^2+c))^2 +
c, and z(N+1) = (sihh(zN^2 + c))^2 + c. So, I sharpened my pencil and
separated these into real and imaginary parts by hand, rendered them on
POV, and got completely different, but plausible-looking results from
what Flarium produced. Next I broke out MAXIMA (plug for MAXIMA: the
descendant of MACSYMA, now an open-source CAS, located here:
http://maxima.sourceforge.net/ It's in some ways better than Mathematica
and Maple, though not as pretty, but it's FREE!) and, amazingly, got the
same results as I did by hand. Since Flarium has some issues with order
of operations in its user-defined functions, I wasted several days
trying to figure out what Flarium was doing differently.
Turns out, Flarium by default uses the convention: z0 = c, rather than
z0 = 0, which, of course makes no difference in the classic Mandelbrot
set (since, if z0 = 0, then z1 = c), but quite a difference in the ones
I was looking at.
Anyway, here are a few views of the two sets, using the convention that
z0 = c. What I think is cool is the appearance of small classic
Mandelbrot sets, where the sequence cycles periodically or chaotically,
surrounded by regions of positive area where the sequence converges
rapidly. (Another interesting set is z*sin(z) + c, which I studied
rather extensively years ago, when I still had to write the programs in
Apple PASCAL and run them on the IIGS for a few weeks at a time (then
take a picture of the monitor, if I wanted to save the image....) )
Dave Matthews
Post a reply to this message
Attachments:
Download 'sinesquared01.jpg' (42 KB)
Download 'sinesquared02.jpg' (95 KB)
Download 'sinhsquared01.jpg' (43 KB)
Download 'sinhsquared02.jpg' (67 KB)
Preview of image 'sinesquared01.jpg'
![sinesquared01.jpg](/povray.binaries.images/attachment/%3C42caa964%40news.povray.org%3E/sinesquared01.jpg?ttop=441697&toff=5150&preview=1)
Preview of image 'sinesquared02.jpg'
![sinesquared02.jpg](/povray.binaries.images/attachment/%3C42caa964%40news.povray.org%3E/sinesquared02.jpg?ttop=441697&toff=5150&preview=1)
Preview of image 'sinhsquared01.jpg'
![sinhsquared01.jpg](/povray.binaries.images/attachment/%3C42caa964%40news.povray.org%3E/sinhsquared01.jpg?ttop=441697&toff=5150&preview=1)
Preview of image 'sinhsquared02.jpg'
![sinhsquared02.jpg](/povray.binaries.images/attachment/%3C42caa964%40news.povray.org%3E/sinhsquared02.jpg?ttop=441697&toff=5150&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Orchid XP v2
Subject: Re: Some interesting 2D Mandelbrots [70 k, 95 k, 50 k, 70 k]
Date: 5 Jul 2005 15:02:54
Message: <42cad95e@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> Turns out, Flarium by default uses the convention: z0 = c, rather than
> z0 = 0, which, of course makes no difference in the classic Mandelbrot
> set (since, if z0 = 0, then z1 = c), but quite a difference in the ones
> I was looking at.
If you wanna be *technical* about it, to draw something you could
describe as a "Mandelbrot" set, you're supposed to use z0 = critical
point of the mapping. (And if there are several, things get... interesting.)
z^2 + c has 2 critical points - zero and infinity. Infinite is *always*
an attractor, no matter what c is, which just leaves zero to investigate...
Neat images BTW. You know, you could try something like this...
#declare Re_Add = function (xr, xi, yr, yi) {xr + yr};
#declare Im_Add = function (xr, xi, yr, yi) {xi + yi};
#declare Re_Sub = function (xr, xi, yr, yi) {xr - yr};
#declare Im_Sub = function (xr, xi, yr, yi) {xi - yi};
#declare Re_Mul = function (xr, xi, yr, yi) {xr * yr - xi * yi};
#declare Im_Mul = function (xr, xi, yr, yi) {xr * yi + xi * yr};
(etc.)
In case you don't have a handy reference...
http://spanky.triumf.ca/www/fractint/append_a_misc.html
("Trig Identities", half way down.)
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |