Canvas API 1 - μμνκΈ°
MDN + κΈ°ν μλ£λ€μ 곡λΆνλ©° μ΄ν΄ν λ΄μ©μ μ 리ν κΈμ λλ€.
μΊλ²μ€ <canvas> νκ²½ μ€μ
Javascript μ HTML <canvas> μ리먼νΈλ₯Ό ν΅ν΄ κ·Έλν½μ 그리λ μλ¨μ μ 곡νλ€. μ λλ©μ΄μ , κ²μ κ·Έλν½, λ°μ΄ν° μκ°ν, μ¬μ§ μ‘°μ λ° μ€μκ° λΉλμ€ μ²λ¦¬λ₯Ό μν΄ μ¬μ©λλ€. μ£Όλ‘ 2D κ·Έλν½μ μ€μ μ λκ³ μλ€.
νμ¬ λλΆλΆμ μ£Όμ λΈλΌμ°μ μμ μ§μλλ€.
<canvas> μμλ₯Ό μ§μνμ§ μλ λΈλΌμ°μ μμλ μ΄λ»κ² 보μ΄λμ?
λ체 μ½ν μΈ λ₯Ό μ 곡ν΄μΌ νλ€. <canvas> νκ·Έ μμ λ체 컨ν μΈ λ₯Ό μ½μ νλ€. <canvas> νκ·Έλ₯Ό μ§μν μ§ μλ λΈλΌμ°μ λ 컨ν μ΄λλ₯Ό 무μνκ³ μ»¨ν μ΄λ λ΄λΆμ λ체 μ½ν μΈ λ₯Ό λ λλ§ν κ²μ΄λ€.
μμ
<canvas id="stockGraph" width="150" height="150"> current stock price: $3.15 +0.15 </canvas> <canvas id="clock" width="150" height="150"> <img src="images/clock.png" width="150" height="150" alt=""/> </canvas>
μ§μ μ¬λΆλ getContext λ©μλλ₯Ό ν΅ν΄ μ μ μλ€.
var canvas = document.getElementById('myCanvas'); if (canvas.getContext){ var ctx = canvas.getContext('2d'); // drawing code here } else { // canvas-unsupported code here }
<canvas> μμμλ width μ height λ μμ±λ§ μμΌλ©° μ΄κ²λ μ νμ¬νμ΄λ€. μ΄κΈ° μ€μ ν¬κΈ°λ 300px * 150px μ΄κ³ , HTML height μ width μμ±, DOM νλ‘νΌν°λ₯Ό μ¬μ©νμ¬ λ°κΏ μ μλ€.
μ±κ³΅ μ½λ
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"> Your browser does not support the HTML canvas tag.</canvas> <script> var canvas = document.getElementById("myCanvas"); canvas.width = 100; canvas.height = 300; var ctx = c.getContext("2d"); </script>
μ€ν¨ μ½λ
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"> Your browser does not support the HTML canvas tag.</canvas> <script> var canvas = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); canvas.width = 100; canvas.height = 300; </script>
λ λ²μ§Έ λΈλ‘μμλ μνλλλ‘ canvas element μ κ°λ‘μ μΈλ‘κΈΈμ΄λ₯Ό λ³κ²½ν μ μλ€. javascript λ μμμ μλλ‘ ν μ€ ν μ€ μ½λλ₯Ό μ€νμν€λλ°, canvas μ width, height λ₯Ό μμ νκΈ° μ μ μ΄λ―Έ canvas μ context λ₯Ό ctx μ ν λΉνκΈ° λλ¬Έμ΄λ€.
<canvas> μμλ css μ μν΄μλ μμλ‘ ν¬κΈ°λ₯Ό μ§μ ν μ μμ§λ§ λ λλ§νλ λμ μ΄λ―Έμ§λ λ μ΄μμ ν¬κΈ°μ λ§κ² ν¬κΈ°κ° μ‘°μ λκ³ , css ν¬κΈ° μ§μ μ΄ μ΄κΈ° μΊλ²μ€ λΉμ¨μ κ³ λ €νμ§ μμΌλ©΄ μ곑λ μ μλ€. λ§μ½ μ곑λ κ²½μ° css λ₯Ό μ¬μ©νμ§ λ§κ³ <canvas> μμ±μμ width μ height μμ±μ μ§μ ν κ²μ MDN μμ κΆνκ³ μλ€.
λ λλ§ μ»¨ν μ€νΈ
<canvas> μ리먼νΈλ κ³ μ ν¬κΈ°μ λλ‘μ μμμ μμ±νκ³ νλ μ΄μμ λ λλ§ μ»¨ν μ€(rendering contexts)λ₯Ό λ ΈμΆνμ¬, μΆλ ₯ν 컨ν μΈ λ₯Ό μμ±νκ³ λ€λ£¬λ€. λ λλ§ μ»¨ν μ€νΈλ 2D, 3D λ κ°λ₯νλ€.
getContext()
μΊλ²μ€λ μ²μμ λΉμ΄μλ€. μΊλ²μ€μ 무μΈκ°λ₯Ό κ·Έλ¦¬λ €λ©΄, μ΄λ€ μ€ν¬λ¦½νΈκ° ν΄λΉ μΊλ²μ€ λ λλ§ μ»¨ν μ€νΈμ μ κ·Όνμ¬ λ¬΄μΈκ°λ₯Ό κ·Έλ €μΌ νλ€. <canvas> μμλ getContext() λ©μλλ₯Ό μ΄μ©ν΄μ λ λλ§ μ»¨ν μ€νΈμ 그리기 ν¨μλ€μ μ¬μ©ν μ μλ€.
// <canvas> μμλ₯Ό νμν DOM μ κ²μ var canvas = document.getElementById('exampleCanvas'); // λ λλ§ μ»¨ν μ€νΈμ μ κ·Ό var ctx = canvas.getContext('2d');