본문으로 바로가기
반응형

캔버스 구조

width와 height를 나타내는 속성을 가지고 있으며, 함수로는 toDataURL, toBlob, getContext 함수를 가지고 있다. 여기서 가장 기본적으로 사용해야하는 것은 바로 getContext 함수로 자바스크립트에서 canvas의 context를 가져와서 그 context에 그림을 그리게 되는 것이다. 먼저 html태그에서 canvas태그를 넣어보자.

<canvas id="tutorial" width="150" height="150"></canvas>

그래픽을 렌더링하기 위해서는 JavaScript로 참조 할 수 있게 아래의 소스를 넣어줘야 합니다.

var canvas = document.getElementById("myCanvas"); 
var ctx = canvas.getContext("2d");

<canvas> 엘리먼트에 대한 참조를 canvas 변수에 저장하였습니다. 그러고 나서는 캔버스에 그리기 위해 실질적으로 사용되는 도구인 2D rendering context를 ctx 변수에 저장하고 있습니다.

 

사각형 그리기

ctx.beginPath();  //시작명령어
ctx.rect(20, 40, 50, 50); // x좌표, y좌표, 가로값, 세로값
ctx.fillStyle = "#FF0000"; //색
ctx.fill();  //   채우기
ctx.closePath();   //종료명령어 

beginPath()와 closePath()메소드 사이에 모든 명령어가 들어갑니다. 우리는 rect()를 이용해서 직사각형을 정의했는데, 처음 두 값들은 캔버스의 좌상단 모서리로 부터의 좌표를 의미하고, 나머지 두 값은 직사각형의 너비와 높이를 의미합니다. 위 코드에서 직사각형은 캔버스 좌측에서 20픽셀 떨어져있고, 캔버스 상단에서 40픽셀만큼 아래로 떨어져 있습니다. 그리고 너비와 높이는 각각 50픽셀로 설정되어 완벽한 정사각형으로 그려지고 있습니다. fillStyle은  fill()메소드에서 칠해질 색상 값을 갖게 됩니다. 위 코드에서는 사각형을 빨간색으로 칠하고 있습니다.

원형 그리기

ctx.beginPath();
ctx.arc(240, 160, 20, 0, Math.PI*2, false); //arc(시작 X좌표 , 시작Y좌표 , 반지름 크기, 시작각도, 끝 각도 , 시계or반시계 방향true/false)
ctx.fillStyle = "green";
ctx.fill(); 
ctx.closePath();

위 코드에서 볼 수 있듯이beginPath()와 closePath()메소드가 다시 나왔습니다. 그 사이에, 가장 중요한 부분인 arc() 메소드가 있습니다. 이 메소드는 6개의 파라미터를 갖습니다.

  • 원의 중심을 가리키는 x와 y좌표
  • 원의 반지름
  • 시작 각도와 끝 각도(원을 그릴 때 시작과 끝이되는 각도이며, 라디안 값입니다.)
  • 그리는 방향(false를 넣으면 시계방향으로 그려집니다. 기본 값이나 true를 넣으면 반 시계방향으로 그려집니다.) 이 파라미터는 옵션입니다.

fillStyle속성은 이전과 조금 달라 보이는데, 이는 CSS에서 색상을 표현하는 여러가지 방법 중 하나입니다. 색상을 표현할 때, 16진수로 색상값을 표현하거나, 색상 키워드를 사용하거나, rgba() 함수를 사용하거나 그외에 다른 색상 메소드를 사용할 수 있습니다.

fill()을 사용해서 원에 색상을 채울 수 있다면,stroke()를 이용하면 원의 외곽선에 색상을 부여할 수 있습니다. 아래의 코드들도 여러분의 JavaScript에 추가해보세요.

 

반응형

'IT > 캔버스' 카테고리의 다른 글

[canvas] 움직이는 공 drawing loop  (0) 2019.06.09
SVG Path Animation  (0) 2018.11.25