2 ' made by Svjatoslav Agejenko
\r
4 ' H-Page: svjatoslav.eu
\r
5 ' E-Mail: svjatoslavagejenko@gmail.com
\r
7 DECLARE SUB star (x!, y!, z!, an1!, an2!, an3!)
\r
8 DECLARE SUB gp (x!, y!, z!, x1!, y1!)
\r
9 DECLARE SUB stic (x!, y!, z!, an1!, an2!, an3!)
\r
10 DECLARE SUB gc (x!, y!, z!, x1!, y1!, z1!)
\r
11 DECLARE SUB gcp (x!, y!, z!, x1!, y1!)
\r
12 DECLARE SUB setan (alp!, bet!, gam!)
\r
13 DECLARE SUB start ()
\r
14 DECLARE SUB drawscr ()
\r
16 DIM SHARED mx1, my1, mz1
\r
17 DIM SHARED mx2, my2, mz2
\r
18 DIM SHARED mx3, my3, mz3
\r
32 an1 = SIN(frm / 50) / 2
\r
33 an2 = SIN(frm / 23) / 2 - .5
\r
38 FOR x = -100 TO 100 STEP 10
\r
39 FOR z = 0 TO 200 STEP 10
\r
40 gcp x, -90, z, x1, y1
\r
45 gc -70, -90, 150, x1, y1, z1
\r
47 stic x1, y1, z1, an1, an2, an3
\r
54 SUB gc (x, y, z, x1, y1, z1)
\r
55 x1 = x * mx1 + y * my1 + z * mz1
\r
56 y1 = x * mx2 + y * my2 + z * mz2
\r
57 z1 = x * mx3 + y * my3 + z * mz3
\r
60 SUB gcp (x, y, z, x1, y1)
\r
62 rx = x * mx1 + y * my1 + z * mz1 ' matrix transformation
\r
63 ry = x * mx2 + y * my2 + z * mz2
\r
64 rz = x * mx3 + y * my3 + z * mz3
\r
66 rz = rz + 100 ' perspective calculation
\r
72 SUB gp (x, y, z, x1, y1)
\r
73 rz = z + 100 ' perspective calculation
\r
78 SUB setan (alp, bet, gam)
\r
79 mx1 = SIN(gam) * SIN(bet) * SIN(alp) + COS(gam) * COS(alp)
\r
80 my1 = COS(bet) * SIN(alp)
\r
81 mz1 = SIN(gam) * COS(alp) - COS(gam) * SIN(bet) * SIN(alp)
\r
83 mx2 = SIN(gam) * SIN(bet) * COS(alp) - COS(gam) * SIN(alp)
\r
84 my2 = COS(bet) * COS(alp)
\r
85 mz2 = -COS(gam) * SIN(bet) * COS(alp) - SIN(gam) * SIN(alp)
\r
87 mx3 = -SIN(gam) * COS(bet)
\r
89 mz3 = COS(gam) * COS(bet)
\r
92 SUB star (x, y, z, an1, an2, an3)
\r
98 setan nan1, nan2, nan3
\r
99 gp x, y, z, rx1, ry1
\r
101 FOR n = 0 TO pi * 2 - .1 STEP pi / 5
\r
105 gc x1, y1, 0, x2, y2, z2
\r
106 gp x2 + x, y2 + y, z2 + z, rx2, ry2
\r
107 CIRCLE (rx2, ry2), 1, 14
\r
108 LINE (rx2, ry2)-(rx1, ry1), 1
\r
116 WINDOW (-160, -100)-(160, 100)
\r
122 SUB stic (x, y, z, an1, an2, an3)
\r
125 nan3 = an3 + frm / 50
\r
127 setan nan1, nan2, nan3
\r
128 gp x, y, z, rx1, ry1
\r
138 FOR n = 0 TO pi * 2 - .5 STEP pi / 3
\r
142 gc x1, 100, z1, x2, y2, z2
\r
146 gp x2 + x, y2 + y, z2 + z, rx2, ry2
\r
149 LINE (rx1, ry1)-(rx2, ry2), 15
\r
154 LINE (tmprx(0), tmpry(0))-(tmprx(2), tmpry(2)), 10
\r
155 LINE (tmprx(2), tmpry(2))-(tmprx(4), tmpry(4)), 10
\r
156 LINE (tmprx(4), tmpry(4))-(tmprx(0), tmpry(0)), 10
\r
158 LINE (tmprx(1), tmpry(1))-(tmprx(3), tmpry(3)), 12
\r
159 LINE (tmprx(3), tmpry(3))-(tmprx(5), tmpry(5)), 12
\r
160 LINE (tmprx(5), tmpry(5))-(tmprx(1), tmpry(1)), 12
\r
162 star tmpx(0), tmpy(0), tmpz(0), nan1, nan2, nan3
\r