汎用的には、図形間の重なりがある場合は片方を消すことでもう一方が損なわれますから、「画面上に残す図形は覚えておいて、毎回画面クリアして全部描き直す」ことになるでしょう。
Processing
1void setup() {
2 size(300, 300);
3}
4
5ArrayList< PVector > hist = new ArrayList<PVector>();
6int x;
7void draw() {
8 background(255);
9
10 fill(0);
11 text(x, 10, 10);
12 hist.add(new PVector(x,100));//履歴に追加
13 for(PVector v : hist){//履歴を全部描く
14 point(v.x, v.y);
15 }
16 x++;
17}
図形間の重なりが無いという限定条件があるなら、変化する部分だけを背景色で埋めてしまう、というやり方も考えられます。矩形とか円とかを消したい部分に背景色で描くというのは既に示されているので、まったく同じ図形を背景色で描くという考え方でサンプルを。
Processing
1void setup() {
2 size(300, 300);
3 noSmooth();//スムージングがあると背景色と前景色の関係で描き方が変わるので綺麗に消えない。オフにする
4 background(255);
5}
6
7int x;
8int prev_x;
9void draw() {
10 //background(255);
11
12 fill(255);
13 text(prev_x, 10, 10);//背景色で前のデータを重ね描き(消える)
14 fill(0);
15 text(x, 10, 10);
16
17 point(x, 100);
18 prev_x=x;//現在のデータを次回に保存
19 x++;
20}
21