Artículos
HTML5

Crear un polígono en Canvas HTML5

25/Feb/2021

Seguimos avanzando con los ejemplos de gráficos con canvas y hoy vamos a ver cómo crear un polígono en canvas HTML5. Y es que aunque no existe un método que nos dibuje un polígono si que podemos crearlo mediante un path, moviendo las líneas yendo a las coordenadas de sus vértices.

Crear el Canvas

Así que manos a la obra. Lo primero será crear el elemento canvas dentro de nuestra página web.

<h1>Crear polígonos</h1>
<canvas height="600px" width="1000px" id="micanvas">
    Su navegador no soporta en elemento CANVAS
</canvas>

Y obtener su contexto mediante Javascript y los métodos .getDocumentbyId() y ..getContext().

var canvas = document.getElementById("micanvas");
var ctx = canvas.getContext("2d");

Coordenadas de los vértices del polígono

Ahora lo que tenemos que ver es cómo representar las coordenadas del polígono. Para ello vamos a utilizar una matriz donde la primera posición serán las coordenadas x y el segundo elemento serán las coordenadas y.

De esta forma la siguiente matriz:

var poligono = [[3,3,9],[3,9,3]];

Irá a las coordenadas (3,3) (3,9) y (9,3). Hay que tener en cuenta que el último punto del polígono se unirá con el inicial para poder cerrar el polígono.

Crear un polígono en Canvas

Una vez que tenemos las coordenadas pasamos a crear el path en el cual irmos yendo de coordenada en coordenada. Pero lo primero será crear el path mediante .beginPath() y nos moveremos a la primera coordenada mediante .moveTo().

ctx.beginPath();
ctx.moveTo(coords[0][0], coords[1][0]);

Ahora iremos yendo a cada una de las coordenadas trazando una línea con el método .lineTo(). Para ello recorremos la matriz

for (x=1;x<coords[0].length;x++)
    ctx.lineTo(coords[0][x], coords[1][x]);                

Una vez terminado cerramos el path mediante el método .closePath() y forzamos el pintado de la línea mediante el método stroke().

ctx.closePath();
ctx.lineWidth = 1;
ctx.strokeStyle = "#FFCC00";  
ctx.stroke();

Vemos que las propiedades .lineWidth y .strokeStyle nos sirven para dar estilo a la línea del polígono.

Si lo que queremos es rellenar el color del polígono tendremos que configurarlo mediante la propiedad .fillStyle e invocar al método .fill(). De esta manera el código que nos dibuja el polígono nos quedaría de la siguiente forma.

ctx.beginPath();
ctx.moveTo(coords[0][0], coords[1][0]);

for (x=1;x<coords[0].length;x++)
    ctx.lineTo(coords[0][x], coords[1][x]);                

ctx.closePath();
ctx.lineWidth = 1;
ctx.strokeStyle = "#FFCC00";  
ctx.stroke();            
ctx.fillStyle = "#FFCC00";        
ctx.fill();

De esta manera ya habríamos conseguido crear un polígono en Canvas HTML5.

Código Fuente

Descárgate el código fuente de Crear un polígono en Canvas HTML5
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre HTML5

Disfruta también de nuestros artículos sobre HTML5 en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test HTML5

¿Te atreves a probar tus habilidades y conocimiento en HTML5 con nuestro test?

Test HTML5
Suscribir
Notificar de
guest
0 Comentarios
Opiniones integradas
Ver todos los comentarios