HTML 5 캔버스
캔버스 요소는 웹페이지에 그래픽을 그리는 데 사용됩니다.
캔버스란?
HTML5의 캔버스 요소는 JavaScript를 사용하여 웹페이지에 이미지를 그립니다.
캔버스는 모든 픽셀을 제어할 수 있는 직사각형 영역입니다.
캔버스에는 경로, 직사각형, 원, 문자를 그리고 이미지를 추가하는 다양한 방법이 있습니다.
캔버스 요소 만들기
HTML5 페이지에 캔버스 요소를 추가합니다.
요소의 ID, 너비 및 높이 지정:
<canvas id="myCanvas" width="200" height="100"></canvas>
JavaScript를 통해 그리기
캔버스 요소 자체에는 그리기 기능이 없습니다. 모든 그리기 작업은 JavaScript 내에서 수행되어야 합니다.
<script type="text/javascript"> var c=document.getElementById("myCanvas"); var cxt=c.getContext("2d"); cxt.fillStyle="#FF0000"; cxt.fillRect(0,0,150,75); </script>
JavaScript는 ID를 사용하여 캔버스 요소를 찾습니다.
var c=document.getElementById("myCanvas");
그런 다음 컨텍스트 개체를 만듭니다.
var cxt=c.getContext("2d")
getContext("2d") 개체는 내장 HTML5입니다. 경로, 직사각형, 원, 문자를 그리고 이미지를 추가하는 다양한 방법이 있는 개체입니다.
다음 두 줄의 코드는 빨간색 직사각형을 그립니다.
cxt.fillStyle="#FF0000";
cxt.fillRect(0,0,150,75)
fillStyle 메소드는 빨간색으로 염색하고, fillRect 메소드는 모양, 위치 및 크기를 지정합니다.
좌표 이해
위의 fillRect 메소드에는 매개변수(0,0,150,75)가 있습니다.
의미: 캔버스에 왼쪽 위 모서리(0,0)부터 시작하여 150x75 직사각형을 그립니다.
아래 그림과 같이 캔버스의 X, Y 좌표를 사용하여 캔버스에 그림을 배치합니다.
<!DOCTYPE HTML> <html> <head> <style type="text/css"> body { font-size:70%; font-family:verdana,helvetica,arial,sans-serif; } </style> <script type="text/javascript"> function cnvs_getCoordinates(e) { x=e.clientX; y=e.clientY; document.getElementById("xycoordinates").innerHTML="Coordinates: (" + x + "," + y + ")"; } function cnvs_clearCoordinates() { document.getElementById("xycoordinates").innerHTML=""; } </script> </head> <body style="margin:0px;"> <p>把鼠标悬停在下面的矩形上可以看到坐标:</p> <div id="coordiv" style="float:left;width:199px;height:99px;border:1px solid #c3c3c3" onmousemove="cnvs_getCoordinates(event)" onmouseout="cnvs_clearCoordinates()"></div> <br /> <br /> <br /> <div id="xycoordinates"></div> </body> </html>
예 - 원
크기, 색상 및 위치를 지정하여 원을 그립니다.
<!DOCTYPE HTML> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;"> Your browser does not support the canvas element. </canvas> <script type="text/javascript"> var c=document.getElementById("myCanvas"); var cxt=c.getContext("2d"); cxt.fillStyle="#00ff00"; cxt.beginPath(); cxt.arc(70,18,15,0,Math.PI*2,true); cxt.closePath(); cxt.fill(); </script> </body> </html>
캔버스 요소:
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;"> Your browser does not support the canvas element. </canvas>
예 - 그라데이션
지정한 색상을 사용하여 그라데이션 배경을 그립니다.
<!DOCTYPE HTML> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;"> Your browser does not support the canvas element. </canvas> <script type="text/javascript"> var c=document.getElementById("myCanvas"); var cxt=c.getContext("2d"); var grd=cxt.createLinearGradient(0,0,175,50); grd.addColorStop(0,"#FF0000"); grd.addColorStop(1,"#00FF00"); cxt.fillStyle=grd; cxt.fillRect(0,0,175,50); </script> </body> </html>
예 - 이미지
캔버스에 이미지 배치:
아아아아