2014-11-22 4 views
0

캔버스에 그려진 선을 바꿀 수 있습니까? 업데이트되는 마우스 이동 postXpostY 변경 위치와 경로로, 나중에 그런캔버스 선 바꾸기, 또는 두 점 사이의 선 조절하기

ctx.beginPath(); 
    ctx.lineWidth="2"; 
    ctx.strokeStyle="rgba(42, 155, 128, 0.9)"; 
    ctx.moveTo(linkX,linkY); 
    ctx.lineTo(postX,postY); 
    ctx.stroke(); 

: 그래서, 경우 선으로 그려집니다. 마우스를 가져 가면 움직이는 두 점 사이에 선을 그려 봅니다.

지금까지 lineTo 위치를 업데이트하려는 3 개의 선을 그렸지만이를 선택할 방법이 없습니다. 이것이 단지 CSS 일 경우

$link.on('mousemove', function(e){ 
    $post.css({ 
     left: mouse.x, 
     top: mouse.y 
    }); 
}); 

캔버스 요소로 어떻게 할 수 있습니까?

감사합니다.

답변

1

캔버스가 똑똑하지 않습니다. 그것은 당신의 선을 대상으로 기억하지 못할 것입니다. 어쨌든 선을 그린다면 캔버스가 그것을 잊어 버릴 것이다. 캔버스에 그린 모양 (선)의 좌표를 추적해야합니다. 그리고 나서 기존 라인을 지우고 새로운 위치로 다시 그려서 선의 느낌을 만드십시오.

+0

네임을 어떻게 의미합니까? 캔버스를 지우고 mousemove에 선을 그릴 수 없을 것입니다. 일정하게 진행될 것이기 때문에 집중적이지 않을까요? 이 접근법에 다르게 접근할까요? 건배. – evu

+0

추가 검사/테스트에서 어떻게 든 작동하는 것 같습니다 :) – evu

0

그리기 파트를 mousemove 이벤트의 일부로 추가하면 작동합니다. 그것이 heyho 그것을하는 가장 좋은 방법인지 확실하지 않습니다.

$link.on('mousemove', function(e){ 
     ctx.beginPath(); 
     ctx.lineWidth="2"; 
     ctx.strokeStyle="rgba(42, 155, 128, 0.9)"; 
     ctx.moveTo(linkX,linkY); 
     ctx.lineTo(postX,postY); 
     ctx.stroke(); 
    });