THE
PAST
MASTER
CLUB
STERUO SCOPIC.HTM
' ** (Sterioscope) 1998 BY NICK K. VAN VLIET DEC/1996 VERS2.1
' ** A STUDY IN 3D
' THE LEFT 2 OBJ ARE THE SAME THE RIGHT 2 OBJECTS ARE EACH ROTATED IN
' OPPOSITE DIRECTIONS: SO THEIR TIPS ARE POINTED AWAY FROM EACH OTHER.
' THE FURTHEST RIGHT OBJECT IS DRAWN AS IF ITS BEHIND THE FIRST OBJECT:
' DISTANCE BETWEEN THEM IS INCREASED -THE MORE APART THE FARTHER BEHIND IT IS.
' IT'S THE THINESS AND WIDENESS OF THE 2 RIGHT OBJECTS THAT GIVES THE OBJECT
' 3D QUALITY TO THE EYES. -YOU CAN INCREASE OR DECREASE THIS TO SEE THE
' EFFECTS IT HAS ON ITS OWN 3D DEFINITION - NO DIFFERENCE GIVES IT 2D
' DEFENITION.
' TRY TO SEE THE 2 OBJECTS AS THE SAME OBJECT BUT WITH OPPOSITE TWIST.
' 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.
10 DEFINT A-Z 'integer
20 SCREEN 12 'high resolution graphics mode 640x320
30 RANDOMIZE TIMER 'seed random number generator
60 X1 = 50 + RND * 100 'COORDINATES
70 X2 = 50 + RND * 100
80 Y1 = 200 + RND * 100
90 Y2 = 200 + RND * 100
100 IF (ABS(X2 - X1) < 20) THEN GOTO 60
110 IF (ABS(Y2 - Y1) < 20) THEN GOTO 60
120 IF ((ABS(X2 - X1) < 20) AND (ABS(Y2 - Y1) < 20)) THEN GOTO 60
160 COLOR RND * 14 + 1 'set current color to random (1 to 15)
180 REM DO
190 REM DO
200 StepX1 = RND * 2 - 1 'set Step to random (-3 to 3) '6 -3'
210 StepY1 = RND * 2 - 1
220 StepX2 = RND * 2 - 1
230 StepY2 = RND * 2 - 1
240 IF (StepX1 = 0 OR StepX2 = 0 OR StepY1 = 0 OR StepY2 = 0) THEN GOTO 190
250 IF (StepY1 / StepX1 = StepY2 / StepX2) THEN GOTO 190
258 IF (StepX1 = StepX2 AND StepY3 = StepY4 AND StepX1 = StepY3 AND StepX1 = 0) THEN GOTO 180
260 FOR Times = 1 TO 400 'NO of lines
350 COLOR RND * 14 + 1 'colors:1-15
360 DWGOFFSET = 320
370 X3 = X1 + 50 '320 X0'=50
380 X4 = X2 + 50
390 X5 = X1 + DWGOFFSET '640/2 X0''=300
400 X6 = X2 + DWGOFFSET
410 X7 = X3 + DWGOFFSET + 20 'DISTANCE OR MAGNIFICATION=10 RELATIVE+ ROTATION
420 X8 = X4 + DWGOFFSET + 20
430 Y3 = Y1 '320/2
440 Y4 = Y2
470 IF (X1 < 2 OR X2 < 2 OR X3 < 0 OR X4 < 0) THEN Times = 1000
475 IF (X1 > 300 OR X2 > 300 OR X3 > 300 OR X4 > 300) THEN Times = 1000
480 IF (Y1 < 2 OR Y2 < 2 OR Y1 < 0 OR Y2 < 0) THEN Times = 1000
485 IF (Y1 > 600 OR Y2 > 600 OR Y1 > 600 OR Y2 > 600) THEN Times = 1000
490 LINE (X1, Y3)-(X2, Y4) 'NORMAL
500 REM LINE (X3, Y3)-(X4, Y4) 'NORMAL
510 LINE (X5, Y3)-((X6 - 10), Y4) '3D DEPTH: ROTATION- DEEPER
520 REM LINE ((X7 - 0), Y3)-((X8 + 10), Y4) '3D DEPTH: ROTATION+ CLOSER
530 G = 2 '3
540 X1 = X1 + (StepX1 * G) 'step value 2
550 Y1 = Y1 + (StepY1 * G)
560 X2 = X2 + (StepX2 * G)
570 Y2 = Y2 + (StepY2 * G)
610 NEXT
620 Count = Count + 1 'count loops
630 IF Count = 2 THEN 'NOT RECOMMENDED FOR > 3 loops
632 LOCATE 1, 1
634 COLOR 3
635 REM INPUT "HIT ENTER", U$
638 FOR I = 0 TO 9000: FOR J = 0 TO 50: NEXT J: NEXT I 'PAUSE
640 Count = 0
650 CLS
660 END IF
670 KeyStroke$ = INKEY$ 'get any keystrokes
680 IF LEN(KeyStroke$) THEN KeyVal = ASC(KeyStroke$) 'convert to an integer
690 FOR PAUSE1 = 0 TO 1000
700 FOR PAUSE2 = 0 TO 40
710 NEXT
720 NEXT
740 IF KeyVal <> 27 THEN GOTO 60 'keep 'DO'ing until escape is not pressed ESC
750 END
RETURN TO TOP
RETURN TO PMC MENU
HOME PAGE
You are visitor no.
to this page.