Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- LINES = 12
- STARS = 64
- SCREENX = 160
- SCREENY = 100
- DIM OBJECTX(LINES * 2 - 1)
- DIM OBJECTY(LINES * 2 - 1)
- DIM OBJECTZ(LINES * 2 - 1)
- DIM FLDX(STARS - 1)
- DIM FLDY(STARS - 1)
- DIM FLDZ(STARS - 1)
- DIM NLX1(LINES - 1)
- DIM NLY1(LINES - 1)
- DIM NLX2(LINES - 1)
- DIM NLY2(LINES - 1)
- DIM OLX1(LINES - 1)
- DIM OLY1(LINES - 1)
- DIM OLX2(LINES - 1)
- DIM OLY2(LINES - 1)
- DIM NPX(STARS - 1)
- DIM NPY(STARS - 1)
- DIM OPX(STARS - 1)
- DIM OPY(STARS - 1)
- FOR I = 0 TO STARS - 1
- FLDX(I) = 10 * (RND - .5)
- FLDY(I) = 10 * (RND - .5)
- FLDZ(I) = 100 * RND
- NEXT
- FOR I = 0 TO (LINES * 2) - 1
- READ OBJECTX(I)
- READ OBJECTY(I)
- READ OBJECTZ(I)
- NEXT
- SCREEN 13
- FOR I = 0 TO 255
- OUT &H3C8, I
- OUT &H3C9, I / 4.1
- OUT &H3C9, I / 4.1
- OUT &H3C9, I / 4.1
- NEXT
- DEPTH = 4
- SCALE = 200
- T = U = V = 0!
- MAIN:
- CT = COS(T)
- ST = SIN(T)
- CU = COS(U)
- SU = SIN(U)
- CV = COS(V)
- SV = SIN(V)
- FOR I = 0 TO LINES - 1
- RX1 = OBJECTX(2 * I + 0)
- RY1 = OBJECTY(2 * I + 0)
- RZ1 = OBJECTZ(2 * I + 0)
- RX2 = OBJECTX(2 * I + 1)
- RY2 = OBJECTY(2 * I + 1)
- RZ2 = OBJECTZ(2 * I + 1)
- TRX1 = (CU * CV) * RX1 + (-CT * SV + ST * SU * CV) * RY1 + (ST * SV + CT * SU * CV) * RZ1
- TRY1 = (CU * SV) * RX1 + (CT * CV + ST * SU * SV) * RY1 + (-ST * CV + CT * SU * SV) * RZ1
- TRZ1 = (-SU) * RX1 + (ST * CU) * RY1 + (CT * CU) * RZ1
- TRX2 = (CU * CV) * RX2 + (-CT * SV + ST * SU * CV) * RY2 + (ST * SV + CT * SU * CV) * RZ2
- TRY2 = (CU * SV) * RX2 + (CT * CV + ST * SU * SV) * RY2 + (-ST * CV + CT * SU * SV) * RZ2
- TRZ2 = (-SU) * RX2 + (ST * CU) * RY2 + (CT * CU) * RZ2
- T = T + .001
- U = U + .002
- V = V + .003
- OLX1(I) = NLX1(I)
- OLY1(I) = NLY1(I)
- OLX2(I) = NLX2(I)
- OLY2(I) = NLY2(I)
- NX1 = TRX1 / (TRZ1 + DEPTH) * SCALE
- NY1 = TRY1 / (TRZ1 + DEPTH) * SCALE
- NX2 = TRX2 / (TRZ2 + DEPTH) * SCALE
- NY2 = TRY2 / (TRZ2 + DEPTH) * SCALE
- NLX1(I) = NX1 + SCREENX
- NLY1(I) = NY1 + SCREENY
- NLX2(I) = NX2 + SCREENX
- NLY2(I) = NY2 + SCREENY
- NEXT
- FOR I = 0 TO STARS - 1
- OPX(I) = NPX(I)
- OPY(I) = NPY(I)
- SX = FLDX(I) / (FLDZ(I) + 1) * SCALE
- SY = FLDY(I) / (FLDZ(I) + 1) * SCALE
- NPX(I) = SX + SCREENX
- NPY(I) = SY + SCREENY
- FLDZ(I) = FLDZ(I) - 1
- IF FLDZ(I) < 2 THEN FLDZ(I) = 100
- NEXT
- WAIT &H3DA, 8
- FOR I = 0 TO LINES - 1
- LINE (OLX1(I), OLY1(I))-(OLX2(I), OLY2(I)), 0
- NEXT
- FOR I = 0 TO STARS - 1
- PSET (OPX(I), OPY(I)), 0
- NEXT
- FOR I = 0 TO LINES - 1
- LINE (NLX1(I), NLY1(I))-(NLX2(I), NLY2(I)), 255
- NEXT
- FOR I = 0 TO STARS - 1
- PSET (NPX(I), NPY(I)), 255
- NEXT
- IF INKEY$ <> "" GOTO AWYYU
- GOTO MAIN
- AWYYU:
- DATA -1.0, -1.0, -1.0
- DATA 1.0, -1.0, -1.0
- DATA 1.0, -1.0, -1.0
- DATA 1.0, 1.0, -1.0
- DATA 1.0, 1.0, -1.0
- DATA -1.0, 1.0, -1.0
- DATA -1.0, 1.0, -1.0
- DATA -1.0, -1.0, -1.0
- DATA -1.0, -1.0, 1.0
- DATA 1.0, -1.0, 1.0
- DATA 1.0, -1.0, 1.0
- DATA 1.0, 1.0, 1.0
- DATA 1.0, 1.0, 1.0
- DATA -1.0, 1.0, 1.0
- DATA -1.0, 1.0, 1.0
- DATA -1.0, -1.0, 1.0
- DATA -1.0, -1.0, -1.0
- DATA -1.0, -1.0, 1.0
- DATA 1.0, -1.0, -1.0
- DATA 1.0, -1.0, 1.0
- DATA 1.0, 1.0, -1.0
- DATA 1.0, 1.0, 1.0
- DATA -1.0, 1.0, -1.0
- DATA -1.0, 1.0, 1.0
Add Comment
Please, Sign In to add comment