저는 Canvas를 실험하고, 격자에 다른 색상의 토큰을 배치하고,이를 제거하려고합니다.캔버스가 유령 반지를 벗어나는 이유는 무엇입니까?
현재 토큰에 흰색과 동일한 크기의 원을 그려서 토큰을 제거하려고합니다. 이것은 원본 원이 있던 "유령 반지"(단일 픽셀 윤곽선)를 남기고 있습니다. 원 윤곽은 흰색 원을 연속적으로 적용하면 사라집니다.
2 원
는 원래 그린 -1, 전혀 이징되지 않는다. 3의 원, -1은 한 번, 4는 원, -1은 두 번 overpainted, 7은 -1로 overpainted되었습니다.이 문제는 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 % 미만의 불투명도로 페인트됩니다. 이것은 캔버스에 고유하지 않습니다. 그냥 페인트 칠해야합니다. –