## Calculator art: ordered dithering

Posted on . Updated on .

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$, a function of $x$ and $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$.

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

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

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

:

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

:

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