THE PAST MASTER CLUB

3D SQUARES.HTM




' ** 3DSQUARES.BAS VERS2.1 MAR/97 BY: NICK K. VAN VLIET (416) 921-4653
' ** sterioscopic squares
' ** If you are having trouble seeing these 3D flakes then you must rotate
' ** your head slightly. Look at these squares as if looking at city roofs
' ** from an airplane.
' TO VIEW 3D: HOLD A LONG PLAIN SHEET VERTICALLY BETWEEN THE CENTER OF THE
' SCREEN AND YOUR NOSE SO THAT EACH EYE SEES ONE OBJECT AND THE MIND SEES A 3D
' PROJECTION OF THE DESIRED EFFECT.

' IF YOU LOOK AT CONSECUTIVE FILM FRAMES (OR EVERY OTHER ONE) LIKE A STERIO-
' SCOPIC VIEW THEN AS LONG AS THERE IS MOTION IN IT YOU WILL SEE A 3D PRO-
' JECTION!


DEFINT H-Z 'integer
DEFDBL A-G 'double

DECLARE SUB FRAME (XX, YY, x0, y0)
DECLARE SUB DISPLAYLINE (x, y)
CONST True = -1
CONST False = NOT True
CONST height = 7
CONST fctr = 4
CONST side = 3
COMMON SHARED x0, y0, a$, y, x, z, clr, xx1, xx2, yy1, yy2

SCREEN 13 '''640x400

DO
xx1 = 1: xx2 = 1: xx3 = 1: xx4 = 1: yy1 = 1: yy2 = 1: yy3 = 1: yy4 = 1
z = 0
CLS
COLOR 2
LOCATE 23, 1: PRINT " 3D KVV 3D KVV";

FOR SEGMENT1 = 1 TO 20
DISPLAYLINE (RND * 60), SEGMENT1 * 8 ' +10
NEXT SEGMENT1

FOR SEGMENT1 = 1 TO 20
DISPLAYLINE (RND * 60 + 70), SEGMENT1 * 8
NEXT SEGMENT1

FOR LL = 0 TO 5000: FOR LM = 0 TO 5: NEXT LM: NEXT LL
COLOR 0
INPUT u$ 'press enter loop

KeyStroke$ = INKEY$ 'get keystroke
IF LEN(KeyStroke$) THEN KeyVal = ASC(KeyStroke$) 'asci integer

LOOP WHILE KeyVal <> 27 'quit= escape key

END



SUB DISPLAYLINE (x, y)
X1 = RND * 12 + 6
offset = RND * 50 + 140 + z
clr = RND * 12 + 1

FRAME X1, height, x, y '7 keeps overlaps out
xx3 = xx1: xx4 = xx2: yy3 = yy1: yy4 = yy2
FRAME X1, height, x + offset, y 'char$ line 8 bits
xx5 = xx1: xx6 = xx2: yy5 = yy1: yy6 = yy2
clr = clr + 2
FRAME side, side, x + (RND * fctr), y '7 keeps overlaps out
xx7 = xx1: xx8 = xx2: yy7 = yy1: yy8 = yy2 'little squares
FRAME side, side, x + offset - (RND * fctr), y 'char$ line 8 bits
COLOR 15

END SUB



SUB FRAME (XX, YY, x0, y0)
COLOR clr
xx1 = x0 - INT(XX / 2): xx2 = x0 + INT(XX / 2)
yy1 = y0 - INT(YY / 2): yy2 = y0 + INT(YY / 2)

LINE (xx1, yy1)-(xx2, yy1)
LINE (xx1, yy1)-(xx1, yy2)
LINE (xx1, yy2)-(xx2, yy2)
LINE (xx2, yy2)-(xx2, yy1)
PAINT (x0, y0), clr, clr
END SUB


RETURN TO TOP
RETURN TO PMC MENU
HOME PAGE
You are visitor no. to this page.
1