テキストをバックグラウンドカラーで書き直そうとしましたが、古いテキストのエッジ(アウトライン)が画面に残ります。なぜ私は考えていない。手伝ってくれませんか?将来的にはIn Processingは、前のテキストを削除する最速の方法です。
background(-1);
noLoop();
fill(#500F0F);
text("99", 300, 200);
fill(-1);
text("99",300, 200);
テキストをバックグラウンドカラーで書き直そうとしましたが、古いテキストのエッジ(アウトライン)が画面に残ります。なぜ私は考えていない。手伝ってくれませんか?将来的にはIn Processingは、前のテキストを削除する最速の方法です。
background(-1);
noLoop();
fill(#500F0F);
text("99", 300, 200);
fill(-1);
text("99",300, 200);
、MCVEを投稿してみてください。あなたのポストのコードはテキストを画面から完全に引き出します。実際のコードとは何が違うのでしょうか? draw()
機能を使用していますか?これらの不確実性は、MCVEを掲示することで回避してください。
とにかく、基本的な問題はanti-aliasingによって発生します。デフォルトでは、アンチエイリアスを使用して、より滑らかで、ピクセル化されていないように描画されます。図面をズームインしてエッジが少しぼやけていることがわかると、これを見ることができます。これはほとんどの図面では良いことですが、あなたのケースでは、ぼやけたエッジが見えるようになっています。
だから、その問題を解決するには、noSmooth()
関数を呼び出すことによって、アンチエイリアシングを無効にできます。
size(500, 500);
noSmooth();
background(255);
noLoop();
fill(#500F0F);
text("99", 300, 200);
fill(255);
text("99",300, 200);
はまた、私は代わりに-1
のPARAMTERとして255
を使用していていることに気づきます。 -1
のカラーパラメータがどうなっているのかわからないので、安全のために0
と255
の間に置いておきます。
しかし、最初の場所にあるテキストを「削除」する必要があるのは少し怪しいです。ジョージのコメントのように、ちょうどbackground()
関数を呼び出して古いフレームをクリアしないでください。
ここで小さな例です:
void draw() {
background(64);
if (mousePressed) {
text("hello", 20, 40);
}
}
素敵な拡張回答(+1) –
は、なぜあなたは単に 'バックグラウンド()'と画面全体をクリアしませんか? –