program julia_col; {creates a Julia set in colour. This is almost exactly the same as the 'mset' program, except for some essential alterations in the mathematics. See the sections "The Mandelbort Set" and "The Julia Sets" for more detail.} uses crt, graph; var xcorner, y2corner, x2corner, ycorner: real; xsize, ysize, k, i, xgap, ygap, max: integer; ca, cb, za2, za1, za, zb: real; gd, gm: integer; count: word; procedure iterate; begin count := 0; za2 := za; while 1=1 do begin za1 := za2; za2 := (za1 * za1 - zb * zb) + ca; zb := za1 * zb * 2 + cb; IF za2 * za2 + zb * zb > 4 THEN EXIT; count := count + 1; IF count > max THEN EXIT end; END; procedure main; begin gd := Detect; InitGraph(gd, gm, 'd:\tp\bgi'); xcorner := -1.5; y2corner := 1.5; x2corner := 1.5; ycorner := -1.5; max := 50; xsize := 400; ysize := 400; xgap := 10; ygap := 10; {CLS} FOR k := ysize downTO 1 do FOR i := 1 TO xsize do begin za := (i / xsize) * (x2corner - xcorner) + xcorner; zb := (k / ysize) * (y2corner - ycorner) + ycorner; ca := 0.360284; {Enter the co-ords for the Julia set here.} cb := 0.100376; iterate; if count > max then count := 0; setcolor(count); LINE (xgap + i, ygap +ysize- k, xgap+i, ygap +ysize- k) end; end; begin main; end.