웹에서 그림판 처럼 터치로 그림을 그릴수 있는걸 구현하려 하는데


touchmove 이벤트 호출주기가 너무 짧아서 


너무 빠르게 그리면 각이져서 그려지더라고요..


아이폰도 약간 그러지만 그나마 안드로이드보단 빠르던데..


뭔가 이 호출 주기를 줄여줄 수 있는 방법이 있을까요?


자바스크립트 소스는 아래와 같습니다..




canvas = document.getElementById("testCanvas");

context = canvas.getContext("2d");

context.lineWidth=5;

context.lineCap="round";

context.fillStyle="white";

context.strokeStyle="black";

canvas.addEventListener("touchstart", function(e){

e.preventDefault();

var p = e.touches[0];

var touchX = p.pageX - canvas.getBoundingClientRect().left;

var touchY = p.pageY - canvas.getBoundingClientRect().top;

console.log("start - X:" + touchX+" , Y:" + touchY);

context.beginPath();

context.arc(touchX, touchY, context.lineWidth/2, 0, Math.PI*2, true);

context.fill();

context.beginPath();

context.moveTo(touchX, touchY);

drawing = true;

},false);

canvas.addEventListener("touchmove", function(e){

e.preventDefault();

draw(e);

}, false);

canvas.addEventListener("touchend", function(e){

e.preventDefault();

context.stroke();

}, false);

function getTouchPoint(event){

var p = event.touches[0];

return{

x:event.clientX - p.pageX,

y:event.clientY - p.pageX,

}

}

function draw(e){

var p = e.touches[0];

var touchX = p.pageX - canvas.getBoundingClientRect().left;

var touchY = p.pageY - canvas.getBoundingClientRect().top;

console.log("move- X:" + touchX+" , Y:" + touchY);

context.lineTo(touchX,touchY);

context.stroke();

context.beginPath();

context.moveTo(touchX,touchY);

}