initial cammit
[qbasicapps.git] / graphics / spirals / spiral9.bas
1 ' Spiral\r
2 ' made by Svjatoslav Agejenko\r
3 ' in 2003.12\r
4 ' H-Page: svjatoslav.eu\r
5 ' E-Mail: svjatoslavagejenko@gmail.com\r
6  \r
7 DECLARE SUB fill (x1, y1, x2, y2, xx1, yy1, xx2, yy2, hel)\r
8 DIM SHARED torux(1 TO 10000)\r
9 DIM SHARED toruy(1 TO 10000)\r
10 DIM SHARED sin1(1 TO 10000)\r
11 DIM SHARED cos1(1 TO 10000)\r
12 DIM SHARED tor\r
13 \r
14 \r
15 \r
16 SCREEN 12\r
17 su = 200\r
18 tor = 0\r
19                 \r
20 FOR a = 1 TO 97 STEP .15   'CALCULATE POINTS\r
21 tor = tor + 1\r
22 su = SIN(a / 31) * 100\r
23 x = SIN(a) * su * 3 + 320\r
24 y = COS(a) * su + 250\r
25 y = y - (COS(a / 31) * 200)\r
26 sin1(tor) = a\r
27 cos1(tor) = a / 31\r
28 torux(tor) = x\r
29 toruy(tor) = y\r
30 PSET (x, y), 15\r
31 NEXT a\r
32 \r
33 OPEN "texture1.dat" FOR INPUT AS #1\r
34 DIM SHARED text$(1 TO 1000)\r
35                                               \r
36 a = 0\r
37 1\r
38 LINE INPUT #1, a$\r
39 IF LEFT$(a$, 3) = "END" THEN GOTO 2\r
40                                     \r
41 a = a + 1\r
42 text$(a) = a$\r
43 GOTO 1\r
44 2\r
45 CLOSE #1\r
46 \r
47 CLS\r
48 a = 1\r
49 FOR c = 1 TO 20\r
50 FOR b = 1 TO LEN(text$(c))\r
51 a$ = RIGHT$(LEFT$(text$(c), b), 1)\r
52 \r
53 a = a + 1\r
54 IF a > tor - 43 THEN GOTO 3\r
55 tee = SIN(sin1(a + 32))\r
56 tee = tee - COS(cos1(a))\r
57                              \r
58 IF tee <= 0 THEN\r
59 LINE (torux(a), toruy(a))-(torux(a + 1), toruy(a + 1)), 15\r
60 LINE (torux(a), toruy(a))-(torux(a + 42), toruy(a + 42)), 15\r
61 hel = 10\r
62 hel1 = COS(cos1(a) - 1) + .5\r
63 hel2 = SIN(sin1(a) + 1) + 1\r
64 IF hel2 > 1 AND hel1 > 1 THEN\r
65 hel3 = (hel2 - 1) * (hel1 - 1) * 8\r
66 hel = hel / (hel3 + 1)\r
67 END IF\r
68 \r
69 IF a$ = "M" THEN hel = hel / 3\r
70 fill torux(a), toruy(a), torux(a + 1), toruy(a + 1), torux(a + 42), toruy(a + 42), torux(a + 43), toruy(a + 43), hel\r
71 END IF\r
72 \r
73 NEXT b\r
74 NEXT c\r
75 3\r
76 a$ = INPUT$(1)\r
77 SYSTEM\r
78 \r
79 SUB fill (zx1, zy1, zx2, zy2, zxx1, zyy1, zxx2, zyy2, hel)\r
80 \r
81 '  x1,y1  ----------------   xx1,yy1         hel - brightness\r
82 '         |              |\r
83 '         |              |\r
84 '         |              |\r
85 '  x2,y2  ----------------   xx2,yy2\r
86 '\r
87 x1 = zx1\r
88 y1 = zy1\r
89 x2 = zx2\r
90 y2 = zy2\r
91 xx1 = zxx1\r
92 yy1 = zyy1\r
93 xx2 = zxx2\r
94 yy2 = zyy2\r
95 \r
96 j1 = x1 - x2\r
97 j2 = y1 - y2\r
98 j3 = SQR((j1 * j1) + (j2 * j2))\r
99 \r
100 j4 = xx1 - xx2\r
101 j5 = yy1 - yy2\r
102 j6 = SQR((j4 * j4) + (j5 * j5))\r
103 \r
104 j7 = (j3 + j6) / 2\r
105 j = j7 / hel\r
106 \r
107 x3 = (x2 - x1) / j\r
108 y3 = (y2 - y1) / j\r
109 xx3 = (xx2 - xx1) / j\r
110 yy3 = (yy2 - yy1) / j\r
111 FOR a = 1 TO j\r
112 x1 = x1 + x3\r
113 y1 = y1 + y3\r
114 xx1 = xx1 + xx3\r
115 yy1 = yy1 + yy3\r
116 LINE (x1, y1)-(xx1, yy1), 15\r
117 NEXT a\r
118 END SUB\r
119 \r