script to update static web site content
[qbasicapps.git] / unsorted / pal.bas
1 ' An attempt to generate universally reusable color parette.\r
2 ' By Svjatoslav Agejenko in 2001.\r
3 ' homepage: svjatoslav.eu\r
4 ' email:    svjatoslav@svjatoslav.eu\r
5  \r
6 \r
7 \r
8 DECLARE SUB getcol (a%, b%, c%, d%)\r
9 DEFINT A-Y\r
10 SCREEN 13\r
11 CLS\r
12 \r
13 c = 0\r
14 FOR r = 0 TO 5\r
15     FOR g = 0 TO 5\r
16         FOR b = 0 TO 5\r
17             OUT &H3C8, c\r
18             c = c + 1\r
19             OUT &H3C9, r * 12\r
20             OUT &H3C9, g * 12\r
21             OUT &H3C9, b * 12\r
22         NEXT b\r
23     NEXT g\r
24 NEXT r\r
25 \r
26 'GOTO 1\r
27 \r
28 FOR c = 0 TO 5\r
29     FOR b = 0 TO 5\r
30         FOR a = 0 TO 5\r
31             LINE (a * 5 + c * 30, b * 5)-(a * 5 + 4 + c * 30, b * 5 + 4), c * 36 + b * 6 + a, BF\r
32         NEXT a\r
33     NEXT b\r
34 NEXT c\r
35 \r
36 \r
37 a$ = INPUT$(1)\r
38 \r
39 ex = -100\r
40 ey = 0\r
41 FOR z = 0 TO 75 STEP 15\r
42     x1 = 50 - (z / 2)\r
43     y1 = 50 - (z * .866025)\r
44     x2 = 50 + z\r
45     y2 = 50\r
46     x3 = x1\r
47     y3 = 100 - y1\r
48 \r
49     ex = ex + 100\r
50     IF z = 45 THEN ex = ex - 300: ey = ey + 101\r
51 \r
52     FOR x = 0 TO 100\r
53         FOR y = 0 TO 100\r
54             r = 7 - (SQR((x1 - x) ^ 2 + (y1 - y) ^ 2) / 15 + 1)\r
55             g = 7 - (SQR((x2 - x) ^ 2 + (y2 - y) ^ 2) / 15 + 1)\r
56             b = 7 - (SQR((x3 - x) ^ 2 + (y3 - y) ^ 2) / 15 + 1)\r
57             IF r < 0 THEN r = 0\r
58             IF g < 0 THEN g = 0\r
59             IF b < 0 THEN b = 0\r
60             IF r > 5 THEN r = 5\r
61             IF g > 5 THEN g = 5\r
62             IF b > 5 THEN b = 5\r
63             c = r * 36 + g * 6 + b\r
64             PSET (x + ex, y + ey), c\r
65         NEXT y\r
66     NEXT x\r
67 NEXT z\r
68 \r
69 a$ = INPUT$(1)\r
70 1\r
71 ex = -100\r
72 ey = 0\r
73 FOR z = 0 TO 75 STEP 15\r
74     x1 = 50 - (z / 2.5)\r
75     y1 = 50 - (z * .566025)\r
76     x2 = 50 + z / 1.5\r
77     y2 = 50\r
78     x3 = x1\r
79     y3 = 100 - y1\r
80 \r
81     ex = ex + 100\r
82     IF z = 45 THEN ex = ex - 300: ey = ey + 101\r
83 \r
84     r1 = 0\r
85     g1 = 0\r
86     b1 = 0\r
87     FOR x = 0 TO 100\r
88         FOR y = 0 TO 100\r
89             r = 30 - (SQR((x1 - x) ^ 2 + (y1 - y) ^ 2) / 2 + 1)\r
90             g = 30 - (SQR((x2 - x) ^ 2 + (y2 - y) ^ 2) / 2 + 1)\r
91             b = 30 - (SQR((x3 - x) ^ 2 + (y3 - y) ^ 2) / 2 + 1)\r
92             r1 = r1 + r\r
93             g1 = g1 + g\r
94             b1 = b1 + b\r
95             r = r1 / 5\r
96             g = g1 / 5\r
97             b = b1 / 5\r
98             r1 = r1 - (r * 5)\r
99             g1 = g1 - (g * 5)\r
100             b1 = b1 - (b * 5)\r
101 \r
102             IF r < 0 THEN r = 0\r
103             IF g < 0 THEN g = 0\r
104             IF b < 0 THEN b = 0\r
105             IF r > 5 THEN r = 5\r
106             IF g > 5 THEN g = 5\r
107             IF b > 5 THEN b = 5\r
108             c = r * 36 + g * 6 + b\r
109             PSET (x + ex, y + ey), c\r
110         NEXT y\r
111     NEXT x\r
112 NEXT z\r
113 \r
114 a$ = INPUT$(1)\r
115 SYSTEM\r
116 \r