Calculator art: ordered dithering

I found a way to draw 1-bit sketches in TI-BASIC on my calculator using dithering. I used ordered dithering because it is the easiest to implement, and all that is needed on a 96×64 screen. Below is the code I used, with comments.

First, set the 4×4 Bayer matrix to [J]. Note that these values are 17 times greater than the actual values in the Bayer matrix.


This will clear drawings, but make sure your graphs are also cleared before running this program.


Iterate through each pixel in range, from the top left (0, 0) to the bottom right (94, 62).


We are graphing z z , a function of x x and y y , with a range of [0, 1], where 0 represents lightness and 1 represents darkness. Here, I am graphing z=(x/94+y/62)/2 z = (x / 94 + y / 62) / 2 .


Note that matrix indices start at 1 instead of 0 in TI-BASIC. If z z is greater than the value of the Bayer matrix at (x,y) (x, y) , the pixel will be displayed in black.

:If Z>[J](remainder(X,3)+1,remainder(Y,3)+1)/17


The program ends here. This is how it came out:

Graph of the first function

And with more interesting functions, like remainder(X,Y+1)/(Y+1)Z:

Graph of the second function

Or even (cos(X^2/400)+cos(Y^2/200)+2)/4Z:

Graph of the third function

If you try this out, get ready for long drawing times, as TI-BASIC for the Z80 chipset is extremely slow.