digital literacy for everyone
[lit][generate-title]
[lit]
fig is a multi-purpose educational language-- originally designed to offer 16 colours in the term window or vt, with a compatible 16-colour palette in a graphics window.
in 2017, i decided that rather than extend the language, a simple function (rgbcolour) would allow 24-bit colour without any change to the language itself. gem seven is one of the early programs that use this function.
[img]gemseven.fig.png[img]
[fig]
# 2019 mn
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
proginf = "gem seven 2017 mn"
function rgbcolour r g b c
python
figcgapal[c] = (r, g, b)
fig
fig
v 1
c 400
w 3.14159 divby 2
xb
yb
for r 490 300 -.25
e w minus 0.00413367105263 swap e w # 3.14159 / 4 / (490 - 300)
for p 0 3.14159 0.44879857142857144 # 3.14159 / 7
e w cos times 380 divby 2 int
rc r divby 3 plus 40 int
rd 256 minus rc rgbcolour rd rc 0 11
x p times 2 cos times e plus c int
y p times 2 sin times e plus r minus 50 int
m 6.28 plus 1.57 divby 108.503 divby 2
now v plus m swap now v
rc r divby 4 int mod 2
iftrue rc
iftrue xb
now v int mod 2 times 11 line xb yb x y now
else
now v int mod 2 times 11 pset x y now
fig
xb x
yb y
fig
next
now display
next
now display lineinput
home: [lit]https://freesoftwareresistance.neocities.org[lit]