⊗jsSpCnvLn 262 of 294 menu

JavaScript를 사용하여 canvas에 선 그리기

간단한 선 그리기부터 시작해 봅시다. 이를 이해하기 위해, 종이 한 장과 연필이 있다고 상상해 보세요. 당신은 그 종이 위에 그림을 그릴 수도 있고, 그림을 그리지 않고 단지 연필을 원하는 지점으로 옮길 수도 있습니다.

JavaScript도 비슷하게 작동합니다: 그것은 연필(또는 그리기 펜)을 가지고 있으며, 원하는 위치로 moveTo 메서드를 사용하여 펜을 이동시킬 수 있고, 그리는 것은 lineTo 메서드를 사용하여 할 수 있습니다.

두 메서드 모두 매개변수로 펜 끝을 이동시킬 지점을 받습니다 - 첫 번째 매개변수는 수평 좌표, 두 번째는 수직 좌표입니다. 좌표의 원점 - 점 0, 0 - 는 요소의 왼쪽 상단 모서리입니다.

펜이 원하는 지점으로 이동할 때 - moveTo 메서드는 단순히 이동시키고, lineTo는 이동 과정에서 현재 펜 위치부터 펜이 이동하게 될 지점까지 선을 그립니다.

그러나, 위의 코드를 실행하면 아무 일도 일어나지 않습니다: 두 개의 명령어를 더 작성해야 합니다: 첫 번째 명령어 beginPath는 선 그리기를 시작하기 전에 지정되어야 하고, 두 번째 명령어 stroke는 모든 moveTolineTo 조합 후에 호출되어야 선이 그려집니다.

자, 이제 선을 그리는 작업 코드를 작성해 봅시다:

선을 그려 봅시다

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(150, 50); ctx.stroke();

:

새를 그려 봅시다

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); ctx.stroke();

:

삼각형을 그려 봅시다

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); ctx.lineTo(50, 50); ctx.stroke();

:

사각형을 그려 봅시다

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(150, 50); ctx.lineTo(150, 150); ctx.lineTo(50, 150); ctx.closePath(); ctx.stroke();

:

도형 닫기

닫힌 도형을 그리기 위해서는 모든 선을 그릴 필요가 없습니다 - 마지막 선은 자동으로 그려져 도형을 닫을 수 있습니다. 이를 위해 stroke 메서드 전에 closePath 메서드를 호출해야 합니다.

이 메서드는 끝점에서 시작점으로 직선을 그려 도형을 닫으려고 시도합니다. 만약 도형이 이미 닫혀 있거나 단순히 점이라면, 이 메서드는 아무것도 하지 않습니다.

closePath를 사용하여 삼각형을 그려 봅시다:

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); //ctx.lineTo(50, 50); - 이 단계는 생략합니다 ctx.closePath(); ctx.stroke();

:

도형 채우기

stroke 메서드 대신 fill 메서드를 사용할 수 있습니다 - 이 경우 도형이 완전히 닫혀 있을 필요는 없습니다 - 그래도 채워집니다:

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); //ctx.lineTo(50, 50); - 이 단계는 생략합니다 //ctx.closePath(); - 이것도 생략합니다 ctx.fill();

:

실습 문제

한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부