3.0 KiB
3.0 KiB
Canvas API
Canvas API는 HTML5에서 제공하는 API로, 웹 페이지에 2차원 그래픽을 그릴 수 있도록 해주는 강력한 도구입니다.
주요 기능
- 2D 그래픽 그리기: 선, 도형, 이미지 등을 자유롭게 그릴 수 있습니다.
- 텍스트 렌더링: 다양한 글꼴과 스타일로 텍스트를 표현할 수 있습니다.
- 이미지 처리: 이미지를 로드하고 조작하여 새로운 이미지를 생성할 수 있습니다.
- 애니메이션: setInterval이나 requestAnimationFrame 함수와 함께 사용하여 부드러운 애니메이션을 구현할 수 있습니다.
- 상호 작용: 마우스, 터치 이벤트를 감지하여 사용자와 상호 작용하는 기능을 구현할 수 있습니다.
사용 방법
- HTML에 캔버스 요소 추가
<canvas id="myCanvas" width="300" height="150"></canvas> - JavaScript에서 캔버스 요소 가져오기
const canvas = document.getElementById('myCanvas'); - 2D 렌더링 컨텍스트 얻기
const ctx = canvas.getContext('2d');- getContext('2d') 메서드를 사용하여 2D 렌더링 컨텍스트를 얻습니다.
- 이 컨텍스트를 통해 다양한 그리기 메서드를 호출하여 캔버스에 그림을 그릴 수 있습니다.
- 그리기
ctx.fillStyle = 'blue'; ctx.fillRect(10, 10, 100, 50); // 파란색 사각형 그리기 ctx.beginPath(); ctx.arc(75, 75, 50, 0, Math.PI * 2); // 원 그리기 ctx.stroke();
경로 관련
- beginPath(): 새로운 path를 시작합니다.
- moveTo(x, y): 펜의 위치를 이동시킵니다.
- lineTo(x, y): 현재 위치에서 지정된 좌표까지 선을 그립니다.
- closePath(): 현재 path를 닫습니다.
- arc(x, y, radius, startAngle, endAngle): 원을 그립니다.
- fill(): 현재 path를 채웁니다.
- stroke(): 현재 path의 테두리를 그립니다.
스타일
- fillStyle: 채우기 색상을 설정합니다.
- strokeStyle: 선 색상을 설정합니다.
- lineWidth: 선의 두께를 설정합니다.
- lineCap: 선의 끝 모양을 설정합니다 (butt, round, square).
- lineJoin: 선이 만나는 부분의 모양을 설정합니다 (miter, round, bevel).
텍스트
- fillText(text, x, y): 지정된 위치에 텍스트를 채워서 그립니다.
- strokeText(text, x, y): 지정된 위치에 텍스트의 윤곽선을 그립니다.
- font: 폰트 스타일을 설정합니다.
이미지
- drawImage(image, dx, dy): 이미지를 캔버스에 그립니다.
- createPattern(image, repetition): 이미지를 패턴으로 만들어 채우기나 선 그리기에 사용합니다.
변환
- translate(x, y): 캔버스 좌표계의 원점을 이동시킵니다.
- rotate(angle): 캔버스를 회전시킵니다.
- scale(x, y): 캔버스를 확대 또는 축소합니다.
그 외
- clearRect(x, y, width, height): 지정된 영역을 지웁니다.
- save(): 현재 캔버스 상태를 저장합니다.
- restore(): 저장된 상태로 복원합니다.