Dibujar un hexágono

facebook-svg gplus-svg twitter-svg

Un hexágono regular es un polígono con 6 lados iguales y 6 ángulos iguales (120°).
Para construir un hexágono trazaremos un circulo imaginario con el radio R y el centro en un punto (X,Y) que en nuestro caso este punto coincide con el centro del <canvas>.
A continuación tenemos que encontrar 6 puntos equidistantes situados en la circunferencia. Estos puntos están situados a 60° uno de otro. Si unimos estos puntos conseguimos un hexágono.

Para calcular las coordenadas de un punto en la circunferencia de un círculo utilizaremos las siguientes fórmulas:

  var x = X + R * Math.cos(a);
  var y = Y + R * Math.sin(a);

Donde
- X e Y son las coordenadas del centro del círculo;
- R es el radio del círculo, y
- a es el ángulo entre el punto 0π y este punto. No hay que olvidar que en el <canvas> tenemos que utilizar radianes. Sesenta grados en radianes son:

var rad = (Math.PI / 180) * 60;

Como que los 6 puntos son equidistantes podemos utilizar un bucle for ( for loop ) para trazar el hexágono.

  ctx.beginPath();
  for( var i = 0; i<6; i++ ){
  x = X + R * Math.cos(rad*i);
  y = Y + R * Math.sin(rad*i);
  ctx.lineTo(x, y);
  }

ceramos el trazado y rellenamos:

ctx.closePath();
ctx.fill();

Su navegador no soporta canvas :( 

	var canvas = document.getElementById("lienzo");
		if (canvas && canvas.getContext) {
		var ctx = canvas.getContext("2d");
			if (ctx) {var R = 100;
					  var X = canvas.width/2;
					  var Y = canvas.height/2;
					  ctx.fillStyle = "#6ab150";
					  // un angulo de 60deg.
					  var rad = ( Math.PI / 180 ) * 60;
					  ctx.beginPath();
					  for( var i = 0; i<6; i++ ){
					  x = X + R * Math.cos( rad*i );
					  y = Y + R * Math.sin( rad*i );
					  ctx.lineTo(x, y);
					  }
					  ctx.closePath();
					  ctx.fill();
			}
		}
Su navegador no soporta canvas :(