jkuhn@walt.cc.utexas.edu (Jeff Kuhn) (04/11/90)
I bought an HP48SX about 2 weeks ago and have had a hard time putting it down. Here is my first offering to the net: a Mandelbrot set plotter. ------------------------------------------------------------------------------- MAND ---- OVERVIEW -------- MAND uses the truth plotting capabilities of the HP48SX to generate a plot of the Mandelbrot set. These plots take about five or six hours to generate, but the results are interresting. Be patient. USAGE ----- Place this program in its own directory. Press {MAND} to get a list of options. {SAVE} Prompts for a name to save the current plot and plotting parameters. {LOAD} Prompts for a name to load a previous plot. {EDIT} Brings up the plotting sub-menu. Press [Orange-Shift] [REVIEW] to display the current plotting parameters. Press [Orange- Shift] [GRAPH] to zoom in. {NEW} Resets the plotting parameters to display the entire set {ITTER} Prompts for the number of itterations to use in the calculation. {QUIT} Return to the variable menu. -------------------------------- cut here ------------------------------------ %%HP: T(3)A(R)F(.); DIR MAND @ Set up the custom menu for the mandelbrot set program @ Check: # 54125d Bytes: 293 \<< { { "SAVE" {SAVE } } { "LOAD" {LOAD } } { "EDIT" { \<< 33 MENU PICT RCL \->LCD 3 FREEZE \>> } } { "NEW" { \<< DEFAULTppar 'PPAR' STO 100 'nITTR' STO 33 MENU \>> } } { "ITTER" { ITTER } } { "QUIT" { \<< 0 MENU \>> } } } TMENU \>> SAVE @ Saves a graphical image allong with it's plotting parameters @ Check: # 58326d Bytes: 77 \<< "Enter name to save as" "" INPUT OBJ\-> PICT RCL PPAR 2 \->LIST SWAP STO \>> LOAD @ Loads a graphical image into PICT and sets the current plotting parameters @ Check: # 19949d Bytes: 102.5 \<< "Enter Picture to load" "" INPUT OBJ\-> OBJ\-> DROP 'PPAR' STO DUP PICT STO \->LCD 3 FREEZE 33 MENU \>> ITTER @ prompts for number of itterations @ Check: # 13905d Bytes: 77.5 \<< "Enter number of itterations" "" INPUT OBJ\-> 'nITTR' STO \>> Q MANDGEN MANDGEN @ Generates a TRUE (1) or FALSE (0) for a single pixel based on the number @ of itterations it took in the Z=Z^2+C calculation, and the dither pattern. @ Check: # 19488d Bytes: 132 \<< X Y R\->C nITTR ITR nITTR / IF DUP 1 == THEN DROP 1 ELSE 16 * 4 MOD IP X Y R\->C DITH? END \>> DEFAULTppar @ Check # 54257d Bytes: 90 { (-1.5,-1) (1.5,1) X 0 (100,100) TRUTH Y } PPAR @ Check # 4776d Bytes: 83 { (-1.5,-1) (1.5,1) X 0 (100,100) TRUTH Y } @ The current number of itterations nITTR 50 DITH? @ takes a color (from 0 to 4) and a point (in complex coords) from the stack @ and returns a 1 or 0 if that pixel should be set. @ Check: # 55653d Bytes: 108 \<< C\->PX OBJ\-> DROP B\->R SWAP B\->R \-> c x y \<< PAT c 1 + GET y 2 MOD 1 + GET x 2 MOD 1 + GET \>> \>> PAT @ 4x4 dither patterns @ 00 10 10 11 11 @ 00 00 01 01 11 @ Check: # 26668d Bytes: 137.5 { { { 0 0 } { 0 0 } } { { 1 0 } { 0 0 } } { { 1 0 } { 0 1 } } { { 1 1 } { 0 1 } } { { 1 1 } { 1 1 } } } ITR @ takes a complex point and the number of itterations and performs the @ Z = Z^2 + C calculation @ Check: # 15058d Bytes 149.5 \<< 0 \-> c itter i \<< c PIXON c PIXOFF (0,0) DO DUP * c + 'i' INCR UNTIL itter > OVER C\->R * ABS 4 > OR END DROP i 1 - \>> \>> END
cooper@plains.UUCP (Jeff Cooper) (04/11/90)
In article <27947@ut-emx.UUCP> jkuhn@walt.cc.utexas.edu (Jeff Kuhn) writes: > >I bought an HP48SX about 2 weeks ago and have had a hard time putting it down. >Here is my first offering to the net: a Mandelbrot set plotter. > > MAND uses the truth plotting capabilities of the HP48SX to generate > a plot of the Mandelbrot set. These plots take about five or six hours > to generate, but the results are interresting. Be patient. > Now all we need is some way to run it in the background....any takers?? :-) ---- "I have something to say, It's better to burn out than fade away" - The Kurgan, "Highlander" Jeff Cooper USnail address: cooper@plains.nodak.edu 1004 Broadway, Apt B1 (701)235-6315 Fargo, ND 58102