I was asked to share the program I used in this tutorial to explain translate & rotate:
https://funprogramming.org/28-Rotate-and-even-move-your-axes.html

In case any educators find it useful it’s now here:

```
boolean do_translate = false;
boolean do_rotate = false;
boolean do_scale = false;
boolean show_axes = true;
float theRot = 0;
int theRotStartX = 0;
int theTransX, theTransY;
int theTransStartX, theTransStartY;
float theScale = 1;
float theScaleStartX = 0;
void keyPressed() {
if (key == 't') {
if (do_translate) {
do_translate = false;
theTransX += mouseX - theTransStartX;
theTransY += mouseY - theTransStartY;
```

This file has been truncated. show original

Note: the idea is to use the program to explain the concepts, but not to learn from the code, since one can write much shorter examples to show the effect of translate, rotate and scale.