3 ms·
This is awesome and really shows off the beautiful compactness of Forth. It took me a moment to figure out what to actually do. Basically you just write a litt
by evincarofautumn 12y ago
This is awesome and really shows off the beautiful compactness of Forth.
It took me a moment to figure out what to actually do. Basically you just write a little program that produces three floating-point values from 0.0 to 1.0, and these are used as the R, G, and B channels of each pixel in the output. For example, an all-red image is:
1 0 0
And a blue-cyan-magenta rectangle is:
x y 1
You get the x and y of the current pixel with the “x” and “y” words, and you get the current time with the “t” word in order to make animations. Here’s one that continually oscillates between black and white:
: r 5 ;
: sin' sin 1 + 2 / ;
: t' t r * sin' ;
t' t' t'
(You can change the value of “r” to make it oscillate faster or slower.)
Looking at the glossary[1] and cannibalising other examples is really helpful.
[1]: http://forthsalon.appspot.com/word-list http://forthsalon.appspot.com/word-list
- to3m 12y agoYou can put a 4th value on the stack, and it's interpreted as the alpha value.
- evincarofautumn 12y agoCool. Unfortunately I saw all these things on the “about” page after I had figured out how to use it through trial and error. That’s what I get for not paying attention!
- pointfree 12y agoLooks like the author put together some decks of slides on his website: http://bradn123.github.io/ http://bradn123.github.io/