Рисование прямоугольников через canvas на JavaScript

Квадраты и прямоугольники не обязательно рисовать с помощью комбинаций moveTo, lineTo - для этого есть методы и попроще. Давайте их разберем.

Метод strokeRect

Метод strokeRect(x, y, ширина, высота) рисует в заданной точке контур прямоугольника. Первые два параметра задают координаты точки, в которой окажется верхний левый угол нарисованного прямоугольника.

Давайте нарисуем прямоугольник с помощью strokeRect (считаем, что ctx уже есть):

html<canvas width="200" height="200" style="background: #f4f4f4;"></canvas>
javascriptlet canvas = document.querySelector('canvas');
let ctx = canvas.getContext('2d');

ctx.strokeRect(50, 50, 100, 75);

Результат:

Задание 1

Метод fillRect

Метод fillRect(x, y, ширина, высота) работает также, как и strokeRect, только рисует закрашенный прямоугольник. Посмотрим на примере:

html<canvas width="200" height="200" style="background: #f4f4f4;"></canvas>
javascriptlet canvas = document.querySelector('canvas');
let ctx = canvas.getContext('2d');

ctx.fillRect(50, 50, 100, 75);

Результат:

Задание 2

Метод rect

Следующий метод rect(x, y, ширина, высота) также рисует прямоугольник. Но видимым этот прямоугольник станет, только если применить метод stroke или fill. В первом случае будет контур, а во втором - фигура.

Давайте нарисуем контур с помощью rect:

html<canvas width="200" height="200" style="background: #f4f4f4;"></canvas>
javascriptlet canvas = document.querySelector('canvas');
let ctx = canvas.getContext('2d');

ctx.rect(50, 50, 100, 75);
ctx.stroke();

Результат:

А теперь нарисуем фигуру:

html<canvas width="200" height="200" style="background: #f4f4f4;"></canvas>
javascriptlet canvas = document.querySelector('canvas');
let ctx = canvas.getContext('2d');

ctx.rect(50, 50, 100, 75);
ctx.fill();

Результат:

Задание 3
Задание 4

Метод clearRect

Следующий метод clearRect(x, y, ширина, высота) работает как ластик, очищая прямоугольную область и делая содержимое совершенно прозрачным.

Давайте нарисуем квадратик с помощью fillRect и сотрем его часть с помощью clearRect:

html<canvas width="200" height="200" style="background: #f4f4f4;"></canvas>
javascriptlet canvas = document.querySelector('canvas');
let ctx = canvas.getContext('2d');

ctx.fillRect(50, 50, 100, 100);
ctx.clearRect(75, 75, 50, 50);

Результат:

Задание 5