Gradiente lineal

facebook-svg gplus-svg twitter-svg

El gradiente lineal se puede utilizar como relleno para formas geométricas, líneas y texto dentro del <canvas>.

  JavaScript Descripción Defecto
createLinearGradient() context.createLinearGradient(x0,y0,x1,y1); Crea un gradiente lineal para utilizar en el <canvas>
x0,y0 son las coordenadas del punto donde empieza el gradiente.
x1,y1 son las coordenadas del punto donde acaba el gradiente.
 
addColorStop() gradient.addColorStop(stop,color); Especifica los colores y la posición donde para el gradiente.  
fillStyle context.fillStyle = color | gradiente | patrón; Determina o devuelve el color, gradiente o patrón del relleno. negro
fill() context.fill(); Rellena una forma geométrica. black

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

Los gradientes lineales son definidos por una línea imaginaria que nos da la dirección del gradiente.
El método createLinearGradient(x0,y0,x1,y1) toma cuatro argumentos.
Los primeros dos argumentos (x0,y0) representan las coordenadas del origen de nuestra línea, mientras que los siguientes dos argumentos (x1,y1) representan las coordenadas del punto donde esta línea acaba.

El método addColorStop(stop,color) toma dos argumentos.
El primer argumento, stop, puede tomar valores desde 0.0 hasta 1.0, y representa una posición a lo largo del vector gradiente definido anteriormente con método createLinearGradient(). Podemos utilizar el método addColorStop() tantas veces como creamos necesario.
El segundo argumento representa el color, que puede tomar cualquier valor aceptado en el CSS ( nombres de colores, valores hex, rgb, rgba, hsl, hsla).

Veamos un ejemplo. A continuación queremos dibujar un rectángulo que cubrirá todo el lienzo, desde la esquina izquierda arriba ( x = 0, y = 0 ) hasta la esquina derecha abajo ( x = canvas.width, y = canvas.height ). Utilizando el método createLinearGradient() creamos el vector gradiente, estableciendo el punto de partida del vector ( x0 = 0, y0 = 0 ), y el punto donde este acaba ( x1 = canvas.width, y1 = 0 ). Este es un gradiente lineal horizontal, ya que el vector es paralelo al eje x.
Utilizamos el método addColorStop() seis veces para crear algo parecido a un arco iris.
Al final utilizamos este gradiente como estilo de relleno (ctx.fillStyle = grd;) para nuestro rectángulo.

Su navegador no soporta canvas :( 

	var canvas = document.getElementById("lienzo");
		if (canvas && canvas.getContext) {
		var ctx = canvas.getContext("2d");
			if (ctx) {
					ctx.rect(0, 0, canvas.width, canvas.height);
					// crea un gradiente lineal horizontal
					var grd = ctx.createLinearGradient(0, 0, canvas.width, 0);
					grd.addColorStop(0,"black");
					grd.addColorStop("0.2","magenta");
					grd.addColorStop("0.4","blue");
					grd.addColorStop("0.6","green");
					grd.addColorStop("0.8","yellow");
					grd.addColorStop(1,"red");
					ctx.fillStyle = grd;
					ctx.fill();
				}
		}
Su navegador no soporta canvas :(