所以我創建了一個類似油漆的應用程序,並且我希望在這些線條周圍有柔軟的邊緣,這樣它們就不會鋸齒狀了。要做到這一點很容易,我使用rgba
層次筆畫。下面是一些代碼:soft edges html5 canvas
$('canvas').mousemove(function(e){
// test if user is pressing down
if(going == true){
x = e.pageX;
y = e.pageY;
// w is the line width, and the last 4 inputs are rgba for the color
draw(x,y,w+5,100,100,100,0.1);
draw(x,y,w+4,100,100,100,0.3);
draw(x,y,w+3,100,100,100,0.5);
draw(x,y,w+2,100,100,100,0.7);
draw(x,y,w+1,100,100,100,0.9);
draw(x,y,w,100,100,100,1);
};
});
起初,這部作品在創建軟邊緣,但出於某種原因,他們淡出你繼續畫,再變成鋸齒狀!這裏是一個比較明顯的顯示器的jsfiddle在模糊變淡(通過使用不同的模糊的顏色筆觸顏色)如何:http://jsfiddle.net/mj4zn/1/
問:
爲什麼會出現這種情況,而且我怎麼能阻止它?
額外的代碼:
如果你想看看draw
功能,那就是:
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
function draw(x,y,w,r,g,b,a){
ctx.lineWidth = w;
ctx.lineTo(x, y);
ctx.strokeStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';
ctx.stroke()
};
圖像和文字這是天才!我曾嘗試過漸變,但它創造了這樣一個滯後!這不,謝謝 –