HTML 5 캔버스

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>

예 - 이미지

캔버스에 이미지 배치:

아아아아


지속적인 학습
||
<!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>
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~