Sierpinski Circle Graphic

 

DO

RANDOMIZE TIMER: CLS : SCREEN 12

PRINT TAB(15); "Sierpinski Circles - Mal Lichtenstein, for REC"

PRINT TAB(15); "Adapted for PC by Graham Yeager & Dr. M. Ecker"

' Copyright 2000, Dr. M. Ecker, REC

pi = 4 * ATN(1): m = 2 + INT(20 * RND): r = m - INT((m - 2) * RND)

LOCATE 29, 30: PRINT "m ="; m; " r ="; r;

REDIM a(2 * m + 1), b(2 * m + 1)

FOR i = 1 TO m

a(i) = COS(2 * pi * i / m): b(i) = SIN(2 * pi * i / m)

NEXT

x = RND: y = RND

FOR n = 1 TO 50000

i = INT(m * RND) + 1

IF RND <= .5 THEN

x = x / r + a(i)

y = y / r + b(i)

ELSE

xx = x / (x * x + y * y)

yy = y / (x * x + y * y)

x = xx / r: y = yy / r

END IF

px = 120 * (x + 2.5): py = 120 * (y + 2)

PSET (px, py), i MOD 16

NEXT

t = TIMER: WHILE TIMER < t + 3: WEND

LOOP

 

Click your browser's Back button or click me to return to REC's page.