[net.graphics] Mandelbrot programs posted to net.sources

bet@ecsvax.UUCP (Bennett E. Todd III) (09/14/85)

I just posted a package of three programs to net.sources for generating
and displaying the Mandelbrot set. They are written in DeSmet C, and
generate displays on the IBM Color Graphics Adaptor for the IBM PC and
the IBM Personal Computer Color Printer. Aside from two assembler
routines setup_scr() and putpoint() in the Color Graphics Adaptor
display program (ibmcg4.c) they should be reasonable portable, and
hopefully not too difficult to modify for whatever graphics device you
favor.
-- 

"Hypocrisy is the vaseline of social intercourse." (Who said that?)

Bennett Todd -- Duke Computation Center, Durham, NC 27706-7756; (919) 684-3695
UUCP: ...{decvax,seismo,philabs,ihnp4,akgua}!mcnc!ecsvax!duccpc!bet

sean@ukma.UUCP (Sean Casey) (09/16/85)

Could you post some good sample values for input?

Sean


-- 

-  Sean Casey                           UUCP:   sean@ukma.UUCP   or
-  Department of Mathematics                    {cbosgd,anlams,hasmed}!ukma!sean
-  University of Kentucky               ARPA:   ukma!sean@ANL-MCS.ARPA

bet@ecsvax.UUCP (Bennett E. Todd III) (09/17/85)

In article <2197@ukma.UUCP> sean@ukma.UUCP (Sean Casey) writes:
>Could you post some good sample values for input?

Sorry 'bout that -- an obvious omission. Here are the headers from the
files I have generated so far:

Centered at -0.240000+0.000000i, scale 1.757800+1.528500i, 320x200
Centered at -0.720000+0.250000i, scale 0.019531+0.016984i, 320x200
Centered at -0.915000+0.270000i, scale 0.019531+0.016984i, 320x200
Centered at -1.410000+0.000000i, scale 0.019531+0.016984i, 320x200
Centered at -0.160000+1.030000i, scale 0.019531+0.016984i, 320x200
Centered at -0.550000+0.640000i, scale 0.019531+0.016984i, 320x200
Centered at -0.760000+0.110000i, scale 0.019531+0.016984i, 320x200
Centered at -0.240000+0.000000i, scale 1.757800+1.171866i, 1008x336
Centered at -0.760000+0.110000i, scale 0.025476+0.016984i, 1008x336
Centered at -0.720000+0.250000i, scale 0.025476+0.016984i, 1008x336
Centered at -0.915000+0.270000i, scale 0.025476+0.016984i, 1008x336
Centered at -1.410000+0.000000i, scale 0.025476+0.016984i, 1008x336
Centered at -0.160000+1.030000i, scale 0.025476+0.016984i, 1008x336
Centered at -0.550000+0.640000i, scale 0.025476+0.016984i, 1008x336

The 320x200 frames go nicely on the Color Graphics Adaptor; the 1008x336
come out about 4x6" on the Color Printer. The former take a few hours;
the latter take more (one that I timed took 14 hours). This is with
DeSmet C using the 8087 library; not optimal floating point performance
by any means. Also, it looks to me like the zoomed in pictures on the
Color Printer (90x zoom if I recall the numbers correctly) show pretty
bad graininess around the border of the set. Either the double-precision
8087 support is slightly bad, or 255 isn't enough iterations. I fear the
latter. Again, sorry about the omission. And to explain about the input
parameters again, the command

	compute name center=a+bi scale=c+di hpix=e vpix=f

creates a data file a little over hpix*vpix bytes long, for the picture
centered at a+bi, going from a-c to a+c in the real direction and b-d to
b+d in the imaginary, hpix pixels horizontally by vpix vertically. To
cut down on typing I added a "like=name" option, so after computing one
of the pictures you can get the scale, hpix, and vpix from it and just
specify a new center by

	compute newname center=a+bi like=oldname

As you can see, I should have put more effort into the algorithm and
less into the user interface:-).

Anybody have any concrete info on how many iterations are required to
properly resolve the set at a given zoom?

-Bennett
-- 

"Hypocrisy is the vaseline of social intercourse." (Who said that?)

Bennett Todd -- Duke Computation Center, Durham, NC 27706-7756; (919) 684-3695
UUCP: ...{decvax,seismo,philabs,ihnp4,akgua}!mcnc!ecsvax!duccpc!bet