Risanje pravokotnikov prek canvas v JavaScriptu

Kvadratov in pravokotnikov ni nujno risati s kombinacijami moveTo, lineTo - za to obstajajo enostavnejše metode. Oglejmo si jih.

Metoda strokeRect

Metoda strokeRect(x, y, širina, višina) riše obris pravokotnika na dani točki. Prva dva parametra določata koordinate točke, kjer bo zgornji levi kot narisanega pravokotnika.

Narišimo pravokotnik z strokeRect (predpostavimo, da ctx že obstaja):

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

Metoda fillRect

Metoda fillRect(x, y, širina, višina) deluje enako kot strokeRect, vendar riše zapolnjen pravokotnik. Poglejmo primer:

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

Metoda rect

Naslednja metoda rect(x, y, širina, višina) prav tako riše pravokotnik. Vendar postane ta pravokotnik viden šele, ko uporabimo metodo stroke ali fill. V prvem primeru bo to obris, v drugem - zapolnjena oblika.

Narišimo obris z 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();

Результат:

In sedaj narišimo zapolnjeno obliko:

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

Metoda clearRect

Naslednja metoda clearRect(x, y, širina, višina) deluje kot radirka, ki očisti pravokotno območje in naredi vsebino popolnoma prozorno.

Narišimo kvadrat s fillRect in izbrišimo njegov del s 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