Uniones de línea

facebook-svg gplus-svg twitter-svg

Podemos dibujar un trazado en el <canvas> conectando lineas y curvas. Al conectar dos líneas podemos escoger también el tipo de unión.

  JavaScript Descripción Defecto
lineWidth context.lineWidth=numero; Determina (sets) o devuelve (returns) la grosor de la línea. 1
strokeStyle context.strokeStyle=color | gradient | pattern; Determina (sets) o devuelve (returns) el color, gradiente o patrón de la línea. negro
beginPath() context.beginPath(); Empezamos a dibujar  
moveTo() context.moveTo(x,y); Mueve el "lapiz" a un punto en el canvas, especificado por sus coordenadas "x" e "y". NO DIBUJA ninguna línea. x=0;
y=0;
lineTo() context.lineTo(x,y); Define una línea desde un punto especificado anteriormente hasta otro punto especificado por sus coordenadas "x" e "y". Mueve el "lapiz" a este punto.  
lineJoin context.lineJoin="bevel | round | miter"; Determina (sets) o devuelve (returns) el aspecto de las juntas entre líneas. Posibles valores: bevel (biselado), round (redondeado), miter (en angulo) mitter
miterLimit context.miterLimit=numero; Determina (sets) o devuelve (return) el aspecto de las juntas en miter. Puede tomar valores entre 1 (punta roma, aspecto biselado) y 5 (punta en angulo). 10
stroke() context.stroke(); Dibuja una línea ya definida.  

Vea la chuleta con las propiedades y metodos() de canvas.

Veamos un ejemplo. A continuación dibujamos 3 trazados iguales, cada una con otro tipo de unión. El trazado de arriba tiene una unión en ángulo (ctx.lineJoin = "miter";), el del medio es redondeado ( ctx.lineJoin = "round";), mientras que el tercer trazado tiene una unión en bisel (ctx.lineJoin = "bevel";). Si no especificamos el tipo de unión, este es por defecto en ángulo ("miter").

Hay tambien una propiedad miterLimit que representa la distancia entre la parte interna y la parte externa del ángulo donde las dos líneas se encuentran. Puede tomar valores entre 1 (punta roma, aspecto biselado) y 5 (punta en angulo). Utilizando miterLimit podemos tramsformar una punta en angulo "miter" en una punta biselada. ( Vea el último trazado - en rojo, donde ctx.miterLimit=1; ).

Su navegador no soporta canvas :( 

	var canvas = document.getElementById("juntas1");
		if (canvas && canvas.getContext) {
		var ctx = canvas.getContext("2d");
			if (ctx) {
				ctx.lineWidth = 25;
				ctx.strokeStyle = "#00f";
				// unión en angulo
				ctx.beginPath();
				ctx.lineJoin = "miter";
				ctx.moveTo(50, 150);
				ctx.lineTo(125, 50);
				ctx.lineTo(200, 150);
				ctx.stroke();
				// unión redondeada
				ctx.beginPath();
				ctx.lineJoin = "round";
				ctx.moveTo(50, 250);
				ctx.lineTo(125, 150);
				ctx.lineTo(200, 250);
				ctx.stroke();
				// unión en bisel
				ctx.beginPath();
				ctx.lineJoin = "bevel";
				ctx.moveTo(50, 350);
				ctx.lineTo(125, 250);
				ctx.lineTo(200, 350);
				ctx.stroke();
				// ejemplo miterLimit
				ctx.beginPath();
				ctx.strokeStyle = "#f00";
				ctx.lineJoin = "miter";
				ctx.moveTo(50, 450);
				ctx.lineTo(125, 350);
				ctx.lineTo(200, 450);
				ctx.miterLimit=1;
				ctx.stroke();
				}
		}
Su navegador no soporta canvas :(