(* * LANGUAGE : ANS Forth * PROJECT : Forth Environments * DESCRIPTION : Julia fractal of exp(z)-z-1 * CATEGORY : Graphic example * AUTHOR : Marcel Hendrix * LAST CHANGE : Tuesday, December 30, 2003 4:56 PM, Marcel Hendrix *) NEEDS -miscutil NEEDS -graphics REVISION -julexp "ÄÄÄ Julia exp(z)-z-1 Version 1.00 ÄÄÄ" PRIVATES DOC (* Julia fractal of exp(z)-z-1 *) ENDDOC -- Parameters 4e FVALUE delH 5e FVALUE delV 9 VALUE amp -- Globals 0. DVALUE @XY PRIVATE : COLORIZE ( ix -- ) 3 * palette + C@+ amp * >S C@+ amp * >< S> OR >S C@ amp * #16 LSHIFT S> OR >S @XY S> SET-MDOT ; : INNERLOOP ( x y -- ) 2DUP TO @XY UNSCALE? DROP FLOCALS| yy xx | 0e 0e FLOCALS| x1 y1 | #40 1 DO xx 6e F> IF I COLORIZE LEAVE ENDIF xx FEXP yy FCOS F* xx F- F1- TO x1 xx FEXP yy FSIN F* yy F- TO y1 xx x1 F- FSQR ( yy y1 F- FSQR F+ ) 1e-6 F< IF I COLORIZE LEAVE ENDIF x1 TO xx y1 TO yy LOOP ;P : COMPUTE TEXTMODE? DUP >R IF GRAPHICS ENDIF 0 0 Xmax Ymax delH FNEGATE delV FNEGATE delH delV SET-GWINDOW GCLEAR #40 RANDOMPALETTE RESET-MDOTS Xmax 0 ?DO Ymax 0 ?DO J I INNERLOOP LOOP LOOP FLUSH-MDOTS R> IF TEXT ENDIF ; :ABOUT CR ." Type COMPUTE for a Julia fractal." CR CR ." 1.4e TO delH 1.4e TO delV -- zoom picture " CR ." 9 TO amp COMPUTE -- influence contrast " ; .ABOUT -julexp CR DEPRIVE (* End of Source *)