Rectángulos

facebook-svg gplus-svg twitter-svg

Los rectángulos son por ahora las únicas formas geometricas primitivas soportadas por <canvas>. O sea: podemos dibujar rectángulos utilizando métodos y propiedades especificas.

Método JavaScript Descripción Defecto
rect() context.rect(x,y,anchura,altura); Define un rectángulo desde un punto (x,y).  
fillStyle context.fillStyle = color | gradient | pattern; Determina o devuelve el color, gradiente o patrón del relleno. negro
fill() context.fill(); Rellena una forma geométrica. negro
fillRect() context.fillRect(x,y,anchura,altura); Dibuja y rellena un rectángulo desde un punto (x,y).  
lineWidth context.lineWidth = numero; Determina (sets) o devuelve (returns) la grosor de la línea. 1
strokeStyle context.strokeStyle = color | gradient | pattern; Determina o devuelve el color, gradiente o patrón de la línea. negro
strokeRect() context.strokeRect(x,y,anchura,altura); Dibuja un rectángulo desde un punto (x,y).  
clearRect(); context.clearRect(x,y,width,height); Borra los píxeles especificados dentro de un rectángulo dado.  

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

Dibujar un rectángulo

Veamos un ejemplo. A continuación queremos dibujar un rectángulo. Utilizamos lineWidth y strokeStyle para establecer el estilo de línea, y fillStyle para establecer el tipo de relleno.
Para esbozar y dibujar el rectángulo utilizamos el método strokeRect() y para el esbozar y rellenar el método fillRect() .

contexto.strokeRect(x,y,anchura,altura);
contexto.fillRect(x,y,anchura,altura);

Donde:
- x e y representan las coordenadas de la esquina izquierda arriba del rectángulo,
- anchura representa la anchura del rectángulo y
- altura representa la altura del rectángulo

Observe por favor que esta vez no necesitamos utilizar stroke() para marcar el rectángulo, ya que strokeRect() define y dibuja el rectángulo en el mismo tiempo. Lo mismo pasa con fillRect() que define y rellena el rectángulo a la vez.

Su navegador no soporta canvas :( 

	var canvas = document.getElementById("lienzo");
		if (canvas && canvas.getContext) {
		var ctx = canvas.getContext("2d");
			if (ctx) {
				ctx.lineWidth = 2;
				ctx.strokeStyle = "#00f";
				ctx.fillStyle = "#ff0";
				ctx.fillRect(60, 60, 150, 100);
				ctx.strokeRect(50, 50, 150, 100);
				}
   }
Su navegador no soporta canvas :(

También podemos utilizar el método rect() solo para definir el rectángulo. Exactamente como en el caso de strokeRect() y fillRect(), el método rect() toma cuatro argumentos: las coordenadas de la esquina izquierda arriba, la anchura y la altura del rectángulo.

contexto.rect(x,y,anchura,altura);

En este caso habrá que utilizar stroke() para marcar, y/o fill() para rellenar el rectángulo.

Su navegador no soporta canvas :( 

	var canvas1 = document.getElementById("lienzo1");
		if (canvas1 && canvas1.getContext) {
		var ctx1 = canvas1.getContext("2d");
			if (ctx1) {
				ctx1.lineWidth = 2;
				ctx1.strokeStyle = "#00f";
				ctx1.fillStyle = "#ff0";
				ctx1.rect(60, 60, 150, 100);
				ctx1.fill();
				ctx1.stroke();
				}
   }
Su navegador no soporta canvas :(

Borrar con clearRect()

Para limpiar el canvas podemos utilizar el método clearRect(). Exactamente como rect() o strokeRect(), clearRect() toma cuatro atributos: x, y, anchura y altura, pero en lugar de dibujar un rectángulo, está borrando del <canvas> los pixeles situados dentro.

El método clearRect() es muy útil, especialmente en animaciones, cuando utilizamos clearRect() para limpiar el canvas entre fotogramas.

En el siguiente ejemplo el <canvas> tiene una imagen de fondo asignada con el CSS. Después de haber dibujado un rectángulo, utilizamos el método clearRect() para borrar parte de este.

Su navegador no soporta canvas :( 

var canvas2 = document.getElementById("lienzo2");
		if (canvas2 && canvas2.getContext) {
		var ctx2 = canvas2.getContext("2d");
			if (ctx2) {
				ctx2.fillStyle = "#ad0";
				ctx2.fillRect(50, 40, 150, 120);
				ctx2.clearRect(70, 60, 110, 60);
			 }
  }
Su navegador no soporta canvas :(