Dibujar un hexágono
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();
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();
}
}