_TITLE "Aurora by rfrost@mail.com" DIM r
(32), g
(32), b
(32), sw!
(1, nw2
), si!
(nw2
), miny
(1, xm
), maxy
(1, xm
), sines
(360) _DELAY .2 ' let screen stabilize FOR i
= 0 TO 360 ' color offsets r
(i
) = VAL(r$
): g
(i
) = VAL(g$
): b
(i
) = VAL(b$
) sw!
(0, i
) = RND * 360 * ar!
' sine wave sw!(1, i) = sw!(0, i) ' duplicate
si!
(i
) = (RND * 50 - 25) / 200 * ar!
' sine wave increment miny(z, x) = 999
maxy(z, x) = -999
pass = 0
FOR z
= 0 TO 1 ' two waves t! = 0 ' total
FOR i
= 1 TO j
' sum of 10 waves for top, 14 for bottom t!
= t!
+ (20 + RND * 10) * COS(sw!
(z
, i
)) sw!(z, i) = sw!(z, i) + si!(i) * 5
y = 150 + t! + z * (70 + x / 3)
IF y
< miny
(z
, x
) THEN miny
(z
, x
) = y
IF y
> maxy
(z
, x
) THEN maxy
(z
, x
) = y
dd = (maxy(z, x) - miny(z, x)) \ 8
miny
(z
, x
) = miny
(z
, x
) + RND * dd
maxy
(z
, x
) = maxy
(z
, x
) - RND * dd
yd = maxy(z, x) - miny(z, x) + 1
FOR y
= miny
(z
, x
) TO maxy
(z
, x
) i = (y - miny(z, x)) / yd * 30 + 1
j
= (j
+ 1) MOD ((RND * 100) + 100) rt = r(i) * k + sines(ra)
gt = g(i) * k + sines(ga)
bt = b(i) * k + sines(ba)
si!
(i
) = (RND * 50 - 25) / 200 * ar!
pass = pass + 1
' r g b