Kreslenie obdĺžnikov pomocou canvas v JavaScripte

Štvorce a obdĺžniky nie je nevyhnutné kresliť pomocou kombinácií moveTo, lineTo - na to existujú jednoduchšie metódy. Poďme si ich prejsť.

Metóda strokeRect

Metóda strokeRect(x, y, šírka, výška) kreslí v zadanom bode obrys obdĺžnika. Prvé dva parametre určujú súradnice bodu, v ktorom sa nachádza ľavý horný roh nakresleného obdĺžnika.

Poďme nakresliť obdĺžnik pomocou strokeRect (predpokladáme, že ctx už existuje):

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

Metóda fillRect

Metóda fillRect(x, y, šírka, výška) funguje rovnako ako strokeRect, len kreslí vyplnený obdĺžnik. Pozrime sa na príklad:

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

Metóda rect

Ďalšia metóda rect(x, y, šírka, výška) tiež kreslí obdĺžnik. Ale viditeľný tento obdĺžnik sa stane, iba ak aplikujeme metódu stroke alebo fill. V prvom prípade to bude obrys, a v druhom - vyplnený tvar.

Poďme nakresliť obrys pomocou 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();

Результат:

A teraz nakreslíme vyplnený tvar:

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

Metóda clearRect

Ďalšia metóda clearRect(x, y, šírka, výška) funguje ako guma, čistí obdĺžnikovú oblasť a robí jej obsah úplne priehľadným.

Poďme nakresliť štvorček pomocou fillRect a zotrieme jeho časť pomocou 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