44 lines
1.3 KiB
Text
44 lines
1.3 KiB
Text
1000 REM Mandelbrot Set Project
|
|
1010 REM Quite BASIC Math Project
|
|
1015 REM 'http://www.quitebasic.com/prj/math/mandelbrot/
|
|
1020 REM ------------------------
|
|
1030 CLS
|
|
1040 PRINT "This program plots a graphical representation of the famous Mandelbrot set. It takes a while to finish so have patience and don't have too high expectations; the graphics resolution is not very high on our canvas."
|
|
2000 REM Initialize the color palette
|
|
2010 GOSUB 3000
|
|
2020 REM L is the maximum iterations to try
|
|
2030 LET L = 100
|
|
2040 FOR I = 0 TO 100
|
|
2050 FOR J = 0 TO 100
|
|
2060 REM Map from pixel coordinates (I,J) to math (U,V)
|
|
2060 LET U = I / 50 - 1.5
|
|
2070 LET V = J / 50 - 1
|
|
2080 LET X = U
|
|
2090 LET Y = V
|
|
2100 LET N = 0
|
|
2110 REM Inner iteration loop starts here
|
|
2120 LET R = X * X
|
|
2130 LET Q = Y * Y
|
|
2140 IF R + Q > 4 OR N >= L THEN GOTO 2190
|
|
2150 LET Y = 2 * X * Y + V
|
|
2160 LET X = R - Q + U
|
|
2170 LET N = N + 1
|
|
2180 GOTO 2120
|
|
2190 REM Compute the color to plot
|
|
2200 IF N < 10 THEN LET C = "black" ELSE LET C = P[ROUND(8 * (N-10) / (L-10))]
|
|
2210 PLOT I, J, C
|
|
2220 NEXT J
|
|
2230 NEXT I
|
|
2240 END
|
|
3000 REM Subroutine -- Set up Palette
|
|
3010 ARRAY P
|
|
3020 LET P[0] = "black"
|
|
3030 LET P[1] = "magenta"
|
|
3040 LET P[2] = "blue"
|
|
3050 LET P[3] = "green"
|
|
3060 LET P[4] = "cyan"
|
|
3070 LET P[5] = "red"
|
|
3080 LET P[6] = "orange"
|
|
3090 LET P[7] = "yellow"
|
|
3090 LET P[8] = "white"
|
|
3100 RETURN
|