DEEPZOOM plots the Mandelbrot Set, using 70 digit precision (C) 1994 by Jay R. Hill Version 0.01 10-19-93 Version 0.02 10-22-93 added color to the background Version 0.03 10-27-93 added cursor mode Version 0.04 10-28-93 fixed real line & component color Version 0.05 11-01-93 CTRL arrow key for fast cursor movement Version 0.06 11-12-93 take keypress ckeck out of inner loop Version 0.07 11-14-93 added Chaosometer for the real line Version 0.08 11-24-93 fix real line bug Version 0.09 11-28-93 add smooth color sequence of 108 colors Version 0.10 12-07-93 color brightness control Version 0.11 12-15-93 add GIF file write "DEEPZOOM.GIF" Version 0.12 12-18-93 add PCX file write "DEEPZOOM.PCX" Version 0.13 01-01-94 fix cursor bug usage: DEEPZOOM max_iter x_center y_center x_delta y_delta maxx maxy color parameter default minimum maximum MAX_ITER 16384 1 2^31 X_CENTER -0.75 -2.0 +2.0 Y_CENTER 0.0 -2.0 +2.0 X_DELTA 1.5 1e-70 +2.0 Y_DELTA 1.125 1e-70 +2.0 MAX_X 320 1 1024 MAX_Y 200 1 768 BRIGHT 0.75 0.0 1.0 The choice of video mode is automatic among these super VGA modes, depending on maxx and maxy. Here is the logic I use. if (maxx<321 && maxy<201) Vid = SVGA320x200x256; else if (maxx<641 && maxy<401) Vid = SVGA640x400x256; else if (maxx<641 && maxy<481) Vid = SVGA640x480x256; else if (maxx<801 && maxy<601) Vid = SVGA800x600x256; else Vid = SVGA1024x768x256; ESC will quit the program. If you quit early, the coordinates of the last point evaluated are shown along with the period of whatever was the last component for which a period was determined. Periodic points are shown in colors blue through all colors back to blue. If the program completes, the coordinates and period of the last component for which a period was determined are shown. The escape count is shown in darker colors. If a pixel is in the MSet but the period can not be determined within MAXITER, the escape count is put to MAXITER the color set accordingly. Special tests are made for the components with periods 1, 2 and 3. Filements are shown in shades of gray. Try: DEEPZOOM 2160 -0.19838 1.10027 0.008 0.006 320 200 or DEEPZOOM 4320 -0.19838 1.10027 0.008 0.006 1024 768 VGA modes always have square pixels, so you must adjust the window width and height according to the pixel counts you choose for the sides. After completion and exit you see the coordinates of the last periodic pixel found (in the colored part of the cardioid). Something like this: Shows Last period found: 5 Last point evaluated: Cr:-0.19798 Ci:1.10032 DEEPZOOM is slow, computes about 500 iterations/sec :-( Cursor mode: At any time, press a function key or arrow key to enter cursor mode. A cursor will appear in the center of the window. Use arrow keys to move the cursor. Ctrl-arrow keys move cursor 16 times as fast. Press End, Home, PageUp, PageDown to move quickly to the window sides. Press Insert to recenter cursor. I use the cursor to locate coordinates of the center of my next zoom window. If you are pleased with the spot you selected, press ENTER to exit. Now the coordinates of the point you selected will appear as Cr and Ci. To cancel cursor mode, press SPACE and DEEPZOOM will continue calculating the window. If it has already finished, the program will wait you to enter cursor mode again or you can press ESC which will exit. If you press ESC to exit, Cr, Ci will show the last periodic point found. This can be useful for finding a midget. I edit the command line with these new coordinates for the next program run. A utility called SNIPPER by PC Magazine can be helpful in cutting and pasting commands for your next run. SNIPPER is a TSR program which can be installed and removed with PC Magazine's INSTALL.COM and REMOVE.COM programs. At any time you are not in cursor mode, that is, when calculating or finished, you can save the picture using your favorite TSR screen grab- ber. To assist with this task, you can surpress the programs keyboard watching for about 12 seconds. Just press 's', the lower case s key. After you do this you can press the keys to active your TSR without interference by my program. DEEPZOOM has a builtin GIF writer. At any time, press 'g', the lower case g key. This activates GIF writing which takes about 8 seconds for 320x200 graphics images to 110 seconds for 1024x768 graphics images. GIF files always have the same name, so you ought to rename the file immediately after exiting, so as to not over write it next time. Make that right after you SNIPPER the new coordinates you selected in cursor mode. To save a .PCX file press 'p'. It works just like the 'g' function. Use the program in search mode, using small windows (20x20 or 50x50) and the cursor to locate the next zoom center. For example, when I make searches near the real line, I use something like this: DEEPZOOM 1024 -1.75 0.0048 0.2048 0.0048 1024 48 This makes a narrow picture, spending time only on parts I want. Note that I use window side lengths in multiples of the pixel counts. This way zoom coordinates selected in cursor mode come out even, without a long string of 6s or 3s. When it looks like a good area is found, start the program with 160x100 or 320x200 for a quick check. Then finish with 640x480, 800x600 or even 1024x768. Let us see your best, post to alt.binaries.pictures.fractals. HILLZOOM is basically the same program which uses the 80 bit complex arithmetic. Use this program to bridge the gap between the 64 bit programs like Fractint. HILLZOOM is good to about 18 or 19 digits. FOURZOOM is really HILLZOOM with an additional period 4 test. This makes it slower still unless you are zooming in near a period four component. At this point, only HILLZOOM and DEEPZOOM have GIF writing ability. FOURZOOM 0.13 has a bug (would write faulty GIF files). Let me walk you through a session. I'll give you the command or key stroke and after the ! mark state what I'm doing or why. We'll start at the DOS prompt. INSTALL SNIPPER ! makes TSR removeable, 'SNIPPER' is a comment SNIPPER 50,80 ! TSR SNIPPER for 50 x 80 text mode DEEPZOOM 65536 -1.8 768e-28 1024e-28 768e-28 1024 768 1.0 ! a deepzoom gets started ! I activate cursor mode ! move cursor to screen bottom ! change my mind, more calculating g ! g key makes ZOOM write deepzoom.gif 'ding-dong' ! or hillzoom.gif if you use HILLZOOM 'disk activity' ! I just wait and watch 'dong-ding' ! ahh, my program wakes up happy and continues ! I activate cursor mode ! and locate a nice spot which I will zoom into ! by a factor of ten (or 100x) next time, and now ENTER ! Gotcha, ENTER exits ZOOM and shows coordinates --------------------------------------------------------------------- ! If you are using DEEPZOOM, and saved a .GIF file ren deepzoom.gif somenew.gif ! rename the gif file before you use DEEPZOOM again! --------------------------------------------------------------------- UPARROW ! DOS5.0 DOSKEY TSR lets you bring up earlier [and maybe again] ! commands for editing, now the command line shows: DEEPZOOM 65536 -1.8 768e-28 1024e-28 768e-28 1024 768 1.0 ! which I want to save into a description file ! to keep track of the corresponding .PCX or .GIF. ! So I activate SNIPPER to capture this line: Alt-W ! SNIPPER's 'cursor' shows up. Now move it ! to the beginning of the command line ENTER ! SNIPPER now begins 'cut' zone -> ARROW KEY ! marking out cut zone - to the end of what I want. ENTER ! Got it, now a window pops up, select file F ! now it wants the file name, edit in SOMENEW.DOC SOMENEW.DOC ! or some such, but NOT DEEPZOOM.GIF!!! This will ENTER ! ruin the image file!! 'disk sounds' ! got it. Now I can edit the command line for the ! next ZOOM. ENTER ! This starts it. Sometimes I immediately ESC to ! convert the PCX to GIF, clean up the .DOC file etc. ! I can get back the 'killed' zoom since it is in the ! DOSKEY command history. Note, if you are just ! 'shopping' in low resolution modes, you may not ! want to save everything. REMOVE ! When you are done, you can remove the TSRs ! the comment label we put on earlier shows now ENTER ! They are gone now. Hope this helps. File list: DEEPZOOM.DOC this file FOURZOOM.EXE Version 0.13, 19 digit math with period 1,2,3,4 tests HILLZOOM.EXE Version 0.13, 19 digit math with period 1,2,3 tests DEEPZOOM.EXE Version 0.12, 72 digit math with period 1,2 tests SVGA256 .BGI Borland Graphics Interface SuperVGA 256 colors V256 .EXE view .pcx and .gif files, adapted from Craig A. Lindley PCX2GIF .EXE convert pcx to gif, adapted from Craig A. Lindley 25 .COM put VGA text screen in 25 line mode 50 .COM put VGA text screen into 50 line mode INSTALL .COM controls TSRs from PC magazine REMOVE .COM controls TSRs from PC magazine INSTALL .DOC controls TSRs from PC magazine SNIPPER .COM screen text grabber from PC magazine SNIPPER .DOC screen text grabber from PC magazine Acknowledgements: DEEPZOOM depends on the fine 72 digit math package Mfloat by Kaufmann Friedrich & Mueller Walter Shareware $20 Special 256 Color GIF Function Library from the book "Practical Ray Tracing in C" written in Borland/Turbo C 2.0 by Craig A. Lindley Required support hardware, files: DEEPZOOM, FOURZOOM and HILLZOOM require SuperVGA SVGA256.BGI from SVGABG50.ZIP, by Jordan Hargrave Shareware $20 available from wuarchive.wustl.edu /archive/mirrors/msdos/borland Note: SVGA256.BGI from Jordan Hargrave's collection is inclosed for your convience. Please obtain the latest SVGABG??.ZIP from an ftp site or Compuserve. I'm now using SVGABG50.ZIP, but there may be a more recent one. Some of you may have difficulties with your VGA display. A later version than SVGABG50 might solve the problem. Most desired new features: Mark out a new zoom region and compute Speed up evaluation of component interiors Port to Windows Set up mpeg movies See you on USENET on sci.fractals or FRACT-L list, enjoy.