, поэтому я пытаюсь создать инструмент рисования в холсте HTML5, где вес хода увеличивается, чем быстрее вы перемещаете мышь, тем меньше вы перемещаетесь. Я использую ctx.lineTo(), но на мои первые попытки заметил, что если я двигаться слишком быстро изменение толщины регистрируются как приращения очевидных квадратных (а не плавное увеличение веса)сглаживание линии. Изменение ширины в холсте lineTo
так я изменил ctx.lineJoin и ctx.lineCap на «круглый», и это стало немного лучше
, но это еще не так гладко, как хотелось бы. я снимаю что-то вроде этого
какие-либо советы о том, как внести изменения в весе немного мягче было бы здорово! вот работает демо: http://jsfiddle.net/0fhag522/1/
и вот предварительный просмотр моего „точка“ объекта (перо) и моя ничья функции:
var dot = {
start: false,
weight: 1,
open: function(x,y){
ctx.lineJoin = "round";
ctx.lineCap = "round";
ctx.beginPath();
ctx.moveTo(x,y);
},
connect: function(x,y){
ctx.lineWidth = this.weight;
ctx.lineTo(x,y);
ctx.stroke();
ctx.closePath();
ctx.beginPath();
ctx.moveTo(x,y);
},
close: function(){
ctx.closePath();
}
}
function draw(){
if(down){
if(!dot.start){
dot.close();
prevx = mx; prevy = my;
dot.open(mx,my);
dot.start=true;
}
else {
var dx = (prevx>mx) ? prevx-mx : mx-prevx;
var dy = (prevy>my) ? prevy-my : my-prevy;
dot.weight = Math.abs(dx-dy)/2;
dot.connect(mx,my);
prevx = mx; prevy = my;
}
}
}