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