Reporte de Canvas y Java Script Para realizar el primer canvas utilizamos un documento html en el cual se incluyen las etiquetas <script type="text/javascript"> </script> las cuales indican el lenguaje en el que se va a programar, realmente toda la magia la haremos en JavaScript. Primero debemos referenciar el elemento canvas y adquirir su contexto (API). Por el momento el nico contexto disponible es el contexto bidimensional.
var canvas = document.getElementById('entorno_canvas'); var context = canvas.getContext('2d');
Puede parecerte que dibujar usando cdigo JavaScript es algo tedioso y pesado, pero lo cierto es que cuando le pillas el punto puede ser muy divertido. De momento, vamos a especificar el color del trazo: context.strokeStyle = '#8f9814'; Cualquier cosa que dibujemos tendr un contorno de color verde. Para visualizar este ejemplo, vamos a dibujar un rectngulo: context.strokeRect (20, 30, 100, 50); La sintaxis del mtodo strokeRect es como sigue strokeRect (izquierda, arriba, ancho, largo). Por lo tanto, en el ejemplo anterior, hemos dibujado un rectngulo posicionado a 20 pixels del margen izquierdo y 30 del derecho con un tamao de 10050 pixels.
Si por ejemplo queremos dibujar un rectngulo relleno con color, deberemos de especificar el color del relleno: context.fillStyle = '#ff8f43'; Y dibujar un rectngulo con relleno: context.fillRect(20, 30, 100, 50);
Y si quiero hacer un rectngulo con trazo y relleno?. Pues generamos uno dentro del otro y listo: context.fillRect(20, 30, 100, 50); context.strokeRect(19, 29, 101, 51);
En Canvas no hay funciones definidas para dibujar formas poligonales (salvo para el rectngulo), no existen funciones para dibujar tringulos, pentgonos, etc. La forma de trabajar con Canvas es dibujar "formas" o "caminos lienzo. 1. stroke() dibuja una forma abierta o cerrada, sin color de relleno. Si hacemos coincidir el ltimo punto con el primero la forma ser cerrada. 2. fill() dibuja una forma cerrada con el color de relleno actual. Si la forma estaba abierta, la propia funcin fill() crea una lnea recta desde el ltimo punto al punto inicial para cerrarla. Ejemplo del cdigo Forma cerrada con relleno contexto.beginPath(); contexto.moveTo(200,50); contexto.lineTo(200,150); contexto.lineTo(300,150); contexto.fill();
Formas curvadas Para dibujar curvas diponemos de tres mtodos bsicos. 1. Arcos. 2. Curvas de Bezier. 3. Curvas cuadrticas. 1. Arcos. Para dibujar arcos tenemos la funcin: arc(x, y, radio, ngulo inicial, ngulo final, sentido de giro) Donde los parmetros (x,y) son las coordenadas del centro de la circunferencia cuyo arco vamos a dibujar. El parmetro radio es el radio de dicha circunferencia. La amplitud del arco ir desde el ngulo inicial al ngulo final en el sentido de las agujas del reloj. Los ngulos se miden en radianes. La equivalencia con los grados nos la da esta expresin: radianes = (Math.PI/180)*grados. Donde Math.PI es el nmero Pi (3,1416...) Ejemplo Arco desde 0 grados hasta 90 grados en sentido contrario de las agujas del reloj contexto.beginPath();
Trabajo realizado con canvas En este archivo disee una carita usando las opciones de canvas el cual el cdigo es este: <html> <head> <title>creando una carita con canvas</title> </head> <body> <canvas id="tutorial" width="520" height="520" style="border: 1px solid gray;"> Tu navegador no soporta canvas. Actualizalo </canvas> <script type="text/javascript">{ var c=document.getElementById("tutorial"); var cxt=c.getContext("2d"); cxt.fillStyle = 'blue'; cxt.strokeStyle=('black'); cxt.beginPath(); cxt.arc(100,150,50,0,Math.PI*2,true); cxt.closePath(); cxt.stroke(); cxt.beginPath(); cxt.arc(100,150,25,0,Math.PI*2,true); cxt.closePath(); cxt.fill(); cxt.beginPath(); cxt.arc(300,150,50,0,Math.PI*2,true); cxt.closePath(); cxt.stroke(); cxt.beginPath(); cxt.arc(300,150,25,0,Math.PI*2,true); cxt.closePath(); cxt.fill(); cxt.beginPath(); cxt.arc(200,210,200,0,Math.PI*2,true); cxt.closePath(); cxt.stroke();
cxt.beginPath(); cxt.arc(200,250,50,radianes('18'),radianes('155')); cxt.stroke(); } function radianes(grados){ var radianes = (Math.PI/180)*grados; return radianes; } </script> </body> </html>
El cual es el resultado es este mostrado en el navegador
En este ejercicio tenamos que desarrollar un triangulo con el fondo verde y el contorno de otro color
Este es el cdigo: <html> <head> <title>Ejemplo2 Canvas </title> <script type="text/javascript"> function mikeCanvas(){ var pudin = document.getElementById('miCanvas'); var arbol = pudin.getContext('2d'); arbol.fillStyle = 'green'; arbol.strokeStyle=('red'); arbol.beginPath(); arbol.moveTo(250,50); arbol.lineTo(200,150); arbol.lineTo(300,150); arbol.fill(); arbol.beginPath(); arbol.moveTo(250,50); arbol.lineTo(200,150); arbol.lineTo(300,150); arbol.closePath(); arbol.stroke(); } </script> </head> <body onLoad="mikeCanvas();"> <canvas id="miCanvas" width="500" height="300">Su navegador es nena :P.</canvas> </body>