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