Tech and Media Labs
This site uses cookies to improve the user experience.




HTML5 Canvas: Rectangles

Jakob Jenkov
Last update: 2014-06-15

One of the easiest shapes to draw on an HTML5 canvas element is a rectangle. You do so using the 2D Context functions fillRect() and strokeRect(). Here is a simple example:

var canvas  = document.getElementById("ex1");
var context = canvas.getContext("2d");

context.fillStyle = "#ff0000";
context.fillRect(10,10, 100,100);

context.strokeStyle = "#0000ff";
context.strokeRect(30,20, 120,110);

Here is how the rectangles look when drawn:

HTML5 Canvas not supported

fillRect()

The fillRect() function draws a filled rectangle delimited by the upper left corner, and then the width and height.

Remember, that the canvas coordinate system starts with 0,0 being the upper left corner of the canvas, and then x increases to the right, and y increses downwards. The is the reverse of a normal coordinate system where y increases upwards.

The 4 parameters (x, y, width, height) are passed to the fillRect() function. Here is an example:

var x = 10;
var y = 10;
var width  = 100;
var height = 100;

context.fillRect(x, y, width, height);

Here is the resulting rectangle:

HTML5 Canvas not supported

The rectangle is black because the example did not set the fillStyle property of the 2D Context.

strokeRect()

The strokeRect() function draws the outline of a rectangle, without filling it. The rectangle is delimited by the upper left corner coordinates (x, y) and the width and height of the rectangle.

Here is a code example:

var x = 10;
var y = 10;
var width  = 100;
var height = 100;

context.strokeRect(x, y, width,height);
HTML5 Canvas not supported

The rectangle is black because the example did not set the strokeStyle property of the 2D Context.

Line Width

You can set the line width of the stroked rectangle using the lineWidth property of the 2D Context. Here is how:

var x = 10;
var y = 10;
var width  = 100;
var height = 100;

context.lineWidth = 4;
context.strokeRect(x, y, width, height);

Here is how the rectangle looks with a line width of 4:

HTML5 Canvas not supported

Rectangle Color

You can set the color of the drawn rectangle using either the fillStyle or strokeStyle properties of the 2D Context. Here is the first example again, with these settings in bold:

var canvas  = document.getElementById("ex1");
var context = canvas.getContext("2d");

context.fillStyle = "#ff0000";
context.fillRect(10,10, 100,100);

context.lineWidth   = 4;
context.strokeStyle = "#0000ff";
context.strokeRect(30,20, 120,110);

And here are the rectangles drawn on a canvas again:

HTML5 Canvas not supported

Jakob Jenkov




Copyright  Jenkov Aps
Close TOC