私はCanvasを試していて、グリッド上に異なる色のトークンを配置し、それらを削除しようとしています。なぜキャンバスはゴーストリングを残していますか?
私は現在、トークン上の白と同じ次元の円を描いてトークンを削除しようとしています。これは、元の円があったところにある "ゴーストリング"(単一ピクセルの輪郭)を残しています。これは、白い円を連続して適用すると消えます。
2中の円は、-1本来描画され、そして全く塗りされています。 3のサークル、-1は1回オーバーパイント、4はサークル、-1は2回オーバーパイントされています。
この現象は、ChromeとFirefox 3.6の両方で発生します。
マイコードが続きます。
function placeToken(e) {
var click = getClick(e);
var gridCord = getGridCord(click);
var canvas = e.currentTarget;
var ctx = canvas.getContext(CONTEXT_NAME);
ctx.fillStyle = color;
ctx.strokeStyle = color; //tried with and without this line, no effect
x = (gridCord.x * spacing) + (spacing/2);
y = (gridCord.y * spacing) + (spacing/2);
ctx.beginPath();
ctx.arc(x, y, (spacing - tokenEdge)/2, 0, Math.PI * 2, true);
ctx.closePath();
ctx.fill();
ctx.stroke(); //tried with and without this line. Same result
};
なぜこのキャンバスはこのゴーストリングを去ってしまいますか?どのように取り除くことができますか?
フラッシュデベロッパーは、キャンバスが夢中になっていることをよく知っています。 – Jason
要するに、アンチエイリアスです。その円の端にあるピクセルは100%未満の不透明度でペイントされています。これはキャンバスにとってユニークではありません。あなたはその上にペイントする必要があります。 –