Рисование прямоугольников через canvas на JavaScript
Квадраты и прямоугольники не обязательно
рисовать с помощью комбинаций moveTo,
lineTo - для этого есть методы и попроще.
Давайте их разберем.
Метод strokeRect
Метод strokeRect(x, y, ширина,
высота) рисует в заданной точке контур
прямоугольника. Первые два параметра задают
координаты точки, в которой окажется верхний
левый угол нарисованного прямоугольника.
Давайте нарисуем прямоугольник с помощью
strokeRect (считаем, что ctx
уже есть):
<canvas width="200" height="200" style="background: #f4f4f4;"></canvas>
let canvas = document.querySelector('canvas');
let ctx = canvas.getContext('2d');
ctx.strokeRect(50, 50, 100, 75);
:
Метод fillRect
Метод fillRect(x, y, ширина, высота)
работает также, как и strokeRect,
только рисует закрашенный прямоугольник.
Посмотрим на примере:
<canvas width="200" height="200" style="background: #f4f4f4;"></canvas>
let canvas = document.querySelector('canvas');
let ctx = canvas.getContext('2d');
ctx.fillRect(50, 50, 100, 75);
:
Метод rect
Следующий метод rect(x, y, ширина,
высота) также рисует прямоугольник. Но
видимым этот прямоугольник станет, только
если применить метод stroke или fill.
В первом случае будет контур, а во втором
- фигура.
Давайте нарисуем контур с помощью rect:
<canvas width="200" height="200" style="background: #f4f4f4;"></canvas>
let canvas = document.querySelector('canvas');
let ctx = canvas.getContext('2d');
ctx.rect(50, 50, 100, 75);
ctx.stroke();
:
А теперь нарисуем фигуру:
<canvas width="200" height="200" style="background: #f4f4f4;"></canvas>
let canvas = document.querySelector('canvas');
let ctx = canvas.getContext('2d');
ctx.rect(50, 50, 100, 75);
ctx.fill();
:
Метод clearRect
Следующий метод clearRect(x, y,
ширина, высота) работает как ластик,
очищая прямоугольную область и делая
содержимое совершенно прозрачным.
Давайте нарисуем квадратик с помощью fillRect
и сотрем его часть с помощью clearRect:
<canvas width="200" height="200" style="background: #f4f4f4;"></canvas>
let canvas = document.querySelector('canvas');
let ctx = canvas.getContext('2d');
ctx.fillRect(50, 50, 100, 100);
ctx.clearRect(75, 75, 50, 50);
: