Basic - DOS - << Spherical Involvent >>
REM --- THE SPHERICAL INVOLVENT
REM --- The Wave Theory of the Field
REM --- Walter E. R. Cassani, Fax ++39 51 4451000
REM --- E-Mail << cassaniw@tin.it >>
REM --- http://www.oocities.org/waltercassani
REM ___________________________________CLS
SCREEN 11
CLS
LET pi = 4 * ATN(1)
LET rad2 = SQR(2)
LET r = 12
LET da = 16
LET db = 16
LET f = 16
LET x0 = 380
LET y0 = 256
DIM p(f, 2, 2)
LET a = 0
LET c = 0
FOR b = -pi / 2 TO pi / 2 STEP pi / db
LET x = r * (a * COS(a) * COS(b) + SIN(a + pi / 4))
LET y = r * (a * SIN(a) * COS(b) + COS(a + pi / 4))
LET z = r * a * SIN(b)
LET xn = x0 + x
LET yn = y0 + z / rad2 - y / rad2
p(c, 0, 1) = xn
p(c, 1, 1) = yn
LET c = c + 1
NEXT
REM image
LET iv = 1
FOR a = 0 TO 21 STEP pi / da
LET c = 0
FOR b = -pi / 2 TO pi / 2 STEP pi / db
LET x = r * (a * COS(a) * COS(b) + SIN(a + pi / 4))
LET y = r * (a * SIN(a) * COS(b) + COS(a + pi / 4))
LET z = r * a * SIN(b)
LET xn = x0 + x
LET yn = y0 + z / rad2 - y / rad2
IF (c = 0 OR c = 16) THEN LINE (xn, yn)-(p(c, 0, iv), p(c, 1, iv))
p(c, 0, 3 - iv) = xn
p(c, 1, 3 - iv) = yn
s = 0
IF c > 0 THEN LINE (xn, yn)-(p(c - 1, 0, 3 - iv), p(c - 1, 1, 3 - iv))
IF (c > 0 AND c < 16) THEN
IF (c > 0 AND c <= 7) THEN s = -1
IF (c < 16 AND c > 7) THEN s = 1
LINE (xn, yn)-(p(c + s, 0, iv), p(c + s, 1, iv))
IF c = 7 THEN
LINE (xn, yn)-(p(c + 1, 0, iv), p(c + 1, 1, iv))
LINE (xn, yn)-(p(c, 0, iv), p(c, 1, iv))
END IF
END IF
LET c = c + 1
NEXT
LET iv = 3 - iv
NEXT
END