Je crée donc une application ressemblant à de la peinture, et je voudrais avoir des bords doux autour des lignes afin qu'ils ne soient pas irréguliers. Pour le faire facilement, j'utilise rgba
pour superposer des traits. Voici un code:bords doux html5 toile
$('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);
};
});
Dans un premier temps, cela fonctionne dans la création des bords souples, mais pour une raison quelconque, ils se fanent en tant que vous continuez à dessiner et devenir à nouveau en dents de scie! Voici un jsFiddle avec un affichage plus évident de la façon dont la disparition progressive se fane en (en utilisant une couleur de flou différent de la couleur de la course): http://jsfiddle.net/mj4zn/1/
Question:
Pourquoi cela se produit, et comment puis-je arrêter?
code supplémentaire:
Si vous voulez regarder la fonction draw
, la voici:
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()
};
C'est génial !!! J'avais déjà essayé le dégradé, mais ça a créé un tel retard! Ce n'est pas, merci –