Eine schnelle Suche erweckt bei mir den Eindruck, dass ist noch alles recht bodenständig und du wirst wohl nicht drum rum kommen die clearRect() Methode zu benutzen
Sicher die dramatischste Möglichkeit wäre eine Liste mit den gezeichneten Elementen zu speichern und bei einer Änderung dieser Liste eine eigene redraw()-Methode zu implementieren.