summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2003-09-22 07:46:36 +0000
committerDimitri Sokolyuk <demon@dim13.org>2003-09-22 07:46:36 +0000
commit1586fe51d81e5f436228cd5304c5b01ce58c5800 (patch)
tree77fad268d95d6389434fcba1fb9c61b56f46e082
parentbd43b10e99acacda96da885930001064f08d629c (diff)
This commit was manufactured by cvs2svn to create branch 'STERN_4'.
Sprout from master 2003-09-22 07:46:34 UTC Dimitri Sokolyuk <demon@dim13.org> '2000-Feb-13 v3' Cherrypick from demon 2003-09-22 07:41:21 UTC Dimitri Sokolyuk <demon@dim13.org> 'simple vectorgrphic a la 3D (DOS)': egavga.bgi Delete: stern.bas
-rw-r--r--stern.bas115
1 files changed, 0 insertions, 115 deletions
diff --git a/stern.bas b/stern.bas
deleted file mode 100644
index ee19d1b..0000000
--- a/stern.bas
+++ /dev/null
@@ -1,115 +0,0 @@
-'$Id$
-'STERN.BAS 29.04.1996
-
-DECLARE SUB InitProgram ()
-DECLARE SUB MainLoop ()
-DECLARE SUB Calc3D ()
-DECLARE SUB Rotation ()
-DECLARE SUB DrawObject ()
-
-DIM SHARED Lines, World(500, 3)
-DIM SHARED X, Y, Z, sX, sY, Xa, Ya, Za, sXs, sYs, D
-DIM SHARED R1, R2, R3, Sr1, Sr2, Sr3, Cr1, Cr2, Cr3, mX, mY, mZ
-
- READ Lines
- FOR i = 1 TO Lines
- FOR J = 1 TO 3
- READ World(i, J)
- NEXT
- NEXT
-
- InitProgram
- MainLoop
- SCREEN 0
-END
-
-DATA 72
-DATA 90, 0, 0, 10, 10, 10, 90, 0, 0, 10, 10,-10
-DATA 90, 0, 0, 10,-10,-10, 90, 0, 0, 10,-10, 10
-DATA -90, 0, 0, -10, 10, 10, -90, 0, 0, -10, 10,-10
-DATA -90, 0, 0, -10,-10,-10, -90, 0, 0, -10,-10, 10
-DATA 0, 90, 0, 10, 10, 10, 0, 90, 0, -10, 10, 10
-DATA 0, 90, 0, -10, 10,-10, 0, 90, 0, 10, 10,-10
-DATA 0,-90, 0, 10,-10, 10, 0,-90, 0, -10,-10, 10
-DATA 0,-90, 0, -10,-10,-10, 0,-90, 0, 10,-10,-10
-DATA 0, 0, 90, 10, 10, 10, 0, 0, 90, 10,-10, 10
-DATA 0, 0, 90, -10,-10, 10, 0, 0, 90, -10, 10, 10
-DATA 0, 0,-90, 10, 10,-10, 0, 0,-90, 10,-10,-10
-DATA 0, 0,-90, -10,-10,-10, 0, 0,-90, -10, 10,-10
-DATA 10, 10, 10, -10, 10, 10, 10,-10, 10, -10,-10, 10
-DATA 10, 10,-10, -10, 10,-10, 10,-10,-10, -10,-10,-10
-DATA 10, 10, 10, 10,-10, 10, -10, 10, 10, -10,-10, 10
-DATA 10, 10,-10, 10,-10,-10, -10, 10,-10, -10,-10,-10
-DATA 10, 10, 10, 10, 10,-10, 10,-10, 10, 10,-10,-10
-DATA -10,-10, 10, -10,-10,-10, -10, 10, 10, -10, 10,-10
-
-SUB Calc3D
- X = -1 * X
- Xa = Cr1 * X - Sr1 * Z
- Za = Sr1 * X + Cr1 * Z
- X = Cr2 * Xa + Sr2 * Y
- Ya = Cr2 * Y - Sr2 * Xa
- Z = Cr3 * Za - Sr3 * Ya
- Y = Sr3 * Za + Cr3 * Ya
- X = X + mX
- Y = Y + mY
- Z = Z + mZ
- sX = D * X / Z
- sY = D * Y / Z
-END SUB
-
-SUB DrawObject
- Rotation
- FOR i = 1 TO Lines STEP 2
- X = World(i, 1)
- Y = World(i, 2)
- Z = World(i, 3)
- Calc3D
- sXs = sX: sYs = sY
-
- X = World(i + 1, 1)
- Y = World(i + 1, 2)
- Z = World(i + 1, 3)
- Calc3D
-
- LINE (sXs, sYs)-(sX, sY), 15
- NEXT
-END SUB
-
-SUB InitProgram
- SCREEN 9, 1, 0, 1
- WINDOW (-320, -175)-(320, 175)
- CLS 'PAGE 0
-
- SCREEN 9, 1, 1, 0
- CLS 'PAGE 1
-
- D = 1200 'View point and rotation values
- mZ = -850
- mX = -5
- R1 = 0
- R2 = 0
- R3 = .3
-END SUB
-
-SUB MainLoop
- WHILE INKEY$ = ""
- R1 = R1 + .1: IF R1 > 6.28 THEN R1 = 0
- R2 = R1: R3 = R1
-
- WAIT 986, 8
- CLS : DrawObject
- Page = ABS(Page = 0) 'Page switching is used to hide the drawing
- SCREEN 9, 1, 1 - Page, Page 'process so the image looks smooth.
- WEND
-END SUB
-
-SUB Rotation
- Sr1 = SIN(R1)
- Sr2 = SIN(R2)
- Sr3 = SIN(R3)
- Cr1 = COS(R1)
- Cr2 = COS(R2)
- Cr3 = COS(R3)
-END SUB
-