El elemento de diseño Canvas
Dibujar un rectángulo
Sintaxis: rect(x,y,width,height)
<canvas id="rectangulo" width="300" height="150">/</canvas> <script>/ var miCanvas=document.getElementById("rectangulo"); var miDibujo=miCanvas.getContext("2d"); miDibujo.fillStyle="rgb(200,4,4)"; miDibujo.rect(10,10,200,100); miDibujo.shadowBlur=20; miDibujo.shadowColor="black"; miDibujo.shadowOffsetX=10; miDibujo.shadowOffsetY=20; miDibujo.fill(); </script>
Dibujar un círculo
Sintaxis: arc(x,y,radius,startAngle,endAngle,antiClockwise)
<canvas id="ovalo" width="300" height="200"></canvas> <script> var miCanvas=document.getElementById("ovalo"); var miDibujo=miCanvas.getContext("2d"); miDibujo.fillStyle="rgb(5,79,154)"; miDibujo.arc(100,100,80,0,2*Math.PI,true); miDibujo.fill(); </script>
Trazar bordes
La propiedad strokeStyle permite definir el color del borde. El método strokeRect() permite dibujar el borde de un rectángulo y el método stroke() permite dibujar un borde.
<canvas id="contorno" width="300" height="150"></canvas> <script> var miCanvas=document.getElementById("contorno"); var miDibujo=miCanvas.getContext("2d"); miDibujo.strokeStyle="#306"; miDibujo.strokeRect(10,10,200,100); miDibujo.arc(220,90,40,0,2*Math.PI,true); miDibujo.stroke(); </script>
Escribir texto
Puede insertar texto en el canvas con el método fillText(), para crear un texto de relleno, y strokeText(), para crear el borde del texto.
- La propiedad textBaseline permite definir la línea de base que prefiramos.
- La propiedad textAlign permite definir la alineación del texto.
- La propiedad font permite definir la tipografía de caracteres que queramos utilizar.
<canvas id="texto" width="300" height="150"></canvas> <script> var miCanvas=document.getElementById("texto"); var miTexto=miCanvas.getContext("2d"); miTexto.textBaseline="alphabetic"; miTexto.textAlign="center"; miTexto.font="3em Nueva"; miTexto.fillStyle="lime"; miTexto.fillText("Canvas",100,50); </script>
Crear degradados
Sintaxis: createLinearGradient(xinicio,yinicio,xfinal,yfinal)
addColorStop() para indicar la posición de inicio (escala de 0 a 1), y el color de inicio.
<canvas id="rectangulo2" width="300" height="150"></canvas> <script> var miCanvas=document.getElementById("rectangulo2"); var miDibujo=miCanvas.getContext("2d"); var dgdl = miDibujo.createLinearGradient(10, 85, 200, 85); dgdl.addColorStop(0, "red"); dgdl.addColorStop(0.5, "#fff"); dgdl.addColorStop(1, "darkblue"); miDibujo.fillStyle=dgdl; miDibujo.rect(10,10,280,130); miDibujo.fill(); </script>
Funciones avanzadas
Los frameworks son librerías con multitud de funciones predefinidas que ayudan a trabajar más eficientemente con Canvas, liberando al programador de realizar muchas tareas rutinarias.
Algunos de los frameworks ultizados con Canvas son los siguientes: EaselJS, Fabric.js, KineticsJS, Paper.js, three.js