Reorganized files. Modernized documentation.
[qbasicapps.git] / misc / pal.bas
diff --git a/misc/pal.bas b/misc/pal.bas
new file mode 100644 (file)
index 0000000..f5e6faa
--- /dev/null
@@ -0,0 +1,116 @@
+' An attempt to generate universally reusable color parette.\r
+' By Svjatoslav Agejenko in 2001.\r
+' homepage: svjatoslav.eu\r
+' email:    svjatoslav@svjatoslav.eu\r
\r
+\r
+\r
+DECLARE SUB getcol (a%, b%, c%, d%)\r
+DEFINT A-Y\r
+SCREEN 13\r
+CLS\r
+\r
+c = 0\r
+FOR r = 0 TO 5\r
+    FOR g = 0 TO 5\r
+        FOR b = 0 TO 5\r
+            OUT &H3C8, c\r
+            c = c + 1\r
+            OUT &H3C9, r * 12\r
+            OUT &H3C9, g * 12\r
+            OUT &H3C9, b * 12\r
+        NEXT b\r
+    NEXT g\r
+NEXT r\r
+\r
+'GOTO 1\r
+\r
+FOR c = 0 TO 5\r
+    FOR b = 0 TO 5\r
+        FOR a = 0 TO 5\r
+            LINE (a * 5 + c * 30, b * 5)-(a * 5 + 4 + c * 30, b * 5 + 4), c * 36 + b * 6 + a, BF\r
+        NEXT a\r
+    NEXT b\r
+NEXT c\r
+\r
+\r
+a$ = INPUT$(1)\r
+\r
+ex = -100\r
+ey = 0\r
+FOR z = 0 TO 75 STEP 15\r
+    x1 = 50 - (z / 2)\r
+    y1 = 50 - (z * .866025)\r
+    x2 = 50 + z\r
+    y2 = 50\r
+    x3 = x1\r
+    y3 = 100 - y1\r
+\r
+    ex = ex + 100\r
+    IF z = 45 THEN ex = ex - 300: ey = ey + 101\r
+\r
+    FOR x = 0 TO 100\r
+        FOR y = 0 TO 100\r
+            r = 7 - (SQR((x1 - x) ^ 2 + (y1 - y) ^ 2) / 15 + 1)\r
+            g = 7 - (SQR((x2 - x) ^ 2 + (y2 - y) ^ 2) / 15 + 1)\r
+            b = 7 - (SQR((x3 - x) ^ 2 + (y3 - y) ^ 2) / 15 + 1)\r
+            IF r < 0 THEN r = 0\r
+            IF g < 0 THEN g = 0\r
+            IF b < 0 THEN b = 0\r
+            IF r > 5 THEN r = 5\r
+            IF g > 5 THEN g = 5\r
+            IF b > 5 THEN b = 5\r
+            c = r * 36 + g * 6 + b\r
+            PSET (x + ex, y + ey), c\r
+        NEXT y\r
+    NEXT x\r
+NEXT z\r
+\r
+a$ = INPUT$(1)\r
+1\r
+ex = -100\r
+ey = 0\r
+FOR z = 0 TO 75 STEP 15\r
+    x1 = 50 - (z / 2.5)\r
+    y1 = 50 - (z * .566025)\r
+    x2 = 50 + z / 1.5\r
+    y2 = 50\r
+    x3 = x1\r
+    y3 = 100 - y1\r
+\r
+    ex = ex + 100\r
+    IF z = 45 THEN ex = ex - 300: ey = ey + 101\r
+\r
+    r1 = 0\r
+    g1 = 0\r
+    b1 = 0\r
+    FOR x = 0 TO 100\r
+        FOR y = 0 TO 100\r
+            r = 30 - (SQR((x1 - x) ^ 2 + (y1 - y) ^ 2) / 2 + 1)\r
+            g = 30 - (SQR((x2 - x) ^ 2 + (y2 - y) ^ 2) / 2 + 1)\r
+            b = 30 - (SQR((x3 - x) ^ 2 + (y3 - y) ^ 2) / 2 + 1)\r
+            r1 = r1 + r\r
+            g1 = g1 + g\r
+            b1 = b1 + b\r
+            r = r1 / 5\r
+            g = g1 / 5\r
+            b = b1 / 5\r
+            r1 = r1 - (r * 5)\r
+            g1 = g1 - (g * 5)\r
+            b1 = b1 - (b * 5)\r
+\r
+            IF r < 0 THEN r = 0\r
+            IF g < 0 THEN g = 0\r
+            IF b < 0 THEN b = 0\r
+            IF r > 5 THEN r = 5\r
+            IF g > 5 THEN g = 5\r
+            IF b > 5 THEN b = 5\r
+            c = r * 36 + g * 6 + b\r
+            PSET (x + ex, y + ey), c\r
+        NEXT y\r
+    NEXT x\r
+NEXT z\r
+\r
+a$ = INPUT$(1)\r
+SYSTEM\r
+\r