' This program exported from BASIC Anywhere Machine (Version [5.2.3].[2024.09.09.00.00]) on 2025.06.08 at 02:51 (Coordinated Universal Time)
'
' This program is a port and mod, by Charlie Veniot, of a QB64 program Eric Schraf created
' and shared with the BASIC Programming Language group on Facebook (https://www.facebook.com/share/p/193MikYFkd/)

GOSUB 🟡_init_vars
SCREEN _NEWIMAGE( w, h, 32 )
DEF FN_y_adj = 0.5 * IFF( INT( RND * 2 ) = 0, -1, 1 )

➡render_drawing:
   x_adj = RND - 0.5
   r1 = RND : r2 = RND : r3 = RND
   FOR a = 0 TO w - 1
       FOR b = 0 TO 1.5 * h
           GOSUB 🟡_setup_draw_vars
           IF d < dmin THEN
              GOSUB 🟡_draw
           END IF
       NEXT b
       If bDraw THEN SLEEP 0.001 : bDraw = FALSE
   NEXT a
   SLEEP 3
   IF _MOUSEBUTTON THEN WHILE _MOUSEBUTTON : WEND
   IF INT( RND * 4 ) = 1 THEN SLEEP 2 : CLS :  y_adj = FN_y_adj()
GOTO ➡render_drawing

END

🟡_init_vars:
   w = 1280
   h = 720
   zoom = 4 / w
   dmin = 0.05 ' 0.06
   y_adj = FN_y_adj()
   bDraw = FALSE
RETURN

🟡_draw:
   coul = 255 - INT( 4000 * d )
   IF coul < 0 THEN coul = 0
   IF coul > 255 THEN coul = 255
   x1 = a - w / 2
   y1 = b - h / 2
   x2 = w + w / 2 - 1 - a
   y2 = h + h / 2 - b
   LINE ( x1, y1 ) - ( x1 + 1, y1 + 1 ), _RGB( r1*coul, r2*coul, r3*coul )
   LINE ( x2, y2 ) - ( x2 + 1, y2 + 1 ), _RGB( r1*coul, r2*coul, r3*coul )
   bDraw = TRUE
RETURN

🟡_setup_draw_vars:
   x = (a - w) * zoom
   y = (b - h) * zoom
   i = 0
   d = 100
   DO_A_LOOP:
      u = x * x
      v = y * y
      IF u + v > 4.8 OR i > 30 OR d < dmin THEN GOTO EXIT_DO_A_LOOP
      t = u - v
      y = 2 * x * y + y_adj ' + 0.156
      x = t - 0.9 + x_adj
      i = i + 1
      n = ABS(u + v - 1)
      IF n < d THEN d = n
   GOTO DO_A_LOOP
   EXIT_DO_A_LOOP:
RETURN