HTML5 캔버스와 JavaScript를 사용하여 그리기 프로그램을 만드는 샘플 코드

黄舟
풀어 주다: 2017-03-18 16:16:17
원래의
2148명이 탐색했습니다.

다음 편집기는 html5canvasJavaScript를 사용하여 그리기 프로그램을 만드는 간단한 예를 보여줍니다. 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리고자 합니다. 에디터를 따라가며 살펴보겠습니다

이 글에서는 캔버스와 자바스크립트를 사용하여 간단한 그리기 프로그램을 만드는 방법을 안내하겠습니다.

먼저 컨테이너 Canvas 요소를 준비하면 모든 작업이 JavaScript로 수행됩니다.

XML/HTML Code复制内容到剪贴板
<canvas id="canvasInAPerfectWorld" width="490" height="220"></canvas>
로그인 후 복사

그리기 환경을 가져오고 컨텍스트 개체는 캔버스에 그리기 위한 메서드와 속성을 제공합니다


context = document.getElementById(&#39;canvasInAPerfectWorld&#39;).getContext("2d");
로그인 후 복사

그리기 프로세스 시작

먼저 그리기 경로 점의 좌표를 저장해야 합니다. addClick 함수는 좌표 점 값을 배열에 추가합니다.

var clickX = new Array();   
var clickY = new Array();   
var clickDrag = new Array();//存储路径点 
var paint;//是否绘制,mousedown时置为true 
function addClick(x, y, dragging)   
{   
  clickX.push(x);   
  clickY.push(y);   
  clickDrag.push(dragging);   
}
로그인 후 복사

다시 그리기 함수는 매번 전체 캔버스를 다시 그립니다. 그것은 불린다. 먼저 캔버스의 내용을 지우고 선 색상, 굵기, 선 연결 방법을 설정합니다. 그런 다음

두 점 사이에 경로를 그리고 배열의 좌표점을 순서대로 그립니다

function redraw(){   
  context.clearRect(0, 0, context.canvas.width,   context.canvas.height); // 清除画布内容   
  context.strokeStyle = "#df4b26";//设置线条颜色   
  context.lineJoin = "round";//当两条线条交汇时,创建圆形边角   
  context.lineWidth = 5;//线条粗细   
  for(var i=0; i < clickX.length; i++) {           
    context.beginPath();//开始一条路径,或重置当前的路径   
    if(clickDrag[i] && i){   
      context.moveTo(clickX[i-1], clickY[i-1]);   
     }else{   
       context.moveTo(clickX[i]-1, clickY[i]);   
     }   
     context.lineTo(clickX[i], clickY[i]);   
     context.closePath();   
     context.stroke();//绘制路径   
  }   
}
로그인 후 복사

그리는 과정에 필요한 이벤트

1개의 mousedown 이벤트

그림이 캔버스를 클릭하면 이 이벤트가 실행되어 실행됩니다. addClick 함수가 호출되고 페인트가 true로 설정됩니다.

아아아앙



2 mousemove 이벤트

mousedown에 설정된 페인트가 true인 후 마우스가 움직일 때 mousemove 이벤트 실행이 트리거되고 마우스로 이동한 모든 포인트가 기록되며 다시 그리기 위해 redraw가 계속 호출됩니다. 캔버스.

$(&#39;#canvas&#39;).mousedown(function(e){   
  var mouseX = e.pageX - this.offsetLeft;   
  var mouseY = e.pageY - this.offsetTop;   
  paint = true;   
  addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop);   
  redraw();   
});
로그인 후 복사

3 mouseup 이벤트

mouseup 마우스를 클릭하고 놓거나 드래그하고 놓으면 경로가 그려졌음을 나타냅니다. 거짓으로.

$(&#39;#canvas&#39;).mousemove(function(e){   
   if(paint){   
     addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop, true);   
     redraw();   
   }   
 });
로그인 후 복사

4개의 mouseleave 이벤트

mouseleave 마우스는 캔버스 요소를 떠나 페인트를 false로 설정합니다.

아아아아

위 내용은 HTML5 캔버스와 JavaScript를 사용하여 그리기 프로그램을 만드는 샘플 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿