Úloha 1 – Kreslení obdélníku a čtverce metodou rect()
| Sitio: | Moodle ZČU |
| Curso: | Sada úloh pro procvičení v předmětu KVD/PGM1P (BP Vítek Dolný) |
| Libro: | Úloha 1 – Kreslení obdélníku a čtverce metodou rect() |
| Imprimido por: | Nepřihlášený host |
| Día: | domingo, 18 de octubre de 2026, 07:34 |
Úvod do úlohy
Obdélník (nebo čtverec) je nejjednodušší geometrický tvar, který si lze na plátně <canvas> vyzkoušet. Pomáhá studentům pochopit, že kreslení probíhá pomocí cest (path) – začínáme je, definujeme tvar a pak ho vykreslíme obrysem nebo výplní. Oproti metodě fillRect() (která nakreslí obdélník rovnou) je použití rect() zajímavé tím, že se začlenňuje do cesty a lépe ukazuje, jak kreslení na canvasu skutečně funguje. Díky tomu si studenti uvědomí, že tvary lze kombinovat, uzavírat a že pořadí volání metod rozhoduje o výsledku.
Teorie a principy
-
Cesta (path): posloupnost kreslících příkazů, kterou lze vykreslit jedním příkazem
stroke()nebofill(). -
Začátek kreslení: vždy
beginPath(), jinak by se nové tvary připojovaly k těm starým. -
Metoda
rect(x, y, width, height): přidá do cesty obdélník, jehož levý horní roh je v bodě(x, y). -
Obrys (
stroke) vs. výplň (fill):-
stroke()vykreslí jen čáry obdélníku. -
fill()vyplní vnitřní plochu podle barvyfillStyle.
-
-
Pořadí:
beginPath()→rect(...)→stroke()nebofill()→closePath().
Praktický příklad kódu
Typické chyby
-
Zapomenutý
beginPath()→ nový obdélník se připojí k předchozímu tvaru. -
Volání
stroke()před definováním tvaru → nic se nevykreslí. -
Záměna parametrů
rect()→ studenti pletou, že první dva jsou souřadnice levého horního rohu a další dva jsou rozměry (ne souřadnice protilehlého rohu). -
Chybějící
closePath()→ pro jednoduchý obdélník to nemusí vadit, ale u složitějších tvarů zůstane cesta „otevřená“.
Shrnutí
-
Obdélník na canvasu lze kreslit nejen
fillRect(), ale i metodourect()jako součást cesty. -
Správný postup:
beginPath()→rect()→ nastavení stylu →stroke()nebofill()→closePath(). -
Levý horní roh se určuje prvními dvěma parametry
(x, y), šířka a výška dalšími dvěma. -
strokekreslí obrys,fillvyplňuje plochu. -
U složitějších tvarů a kombinací cest je dobré vždy cestu uzavírat.
Úloha
Zadání (kontext úlohy):
Chceme nakreslit obdélník a čtverec pomocí cesty. Oproti metodě fillRect() se u rect() jasně ukazuje, že jde o součást cesty, kterou lze obkreslit (stroke()) nebo vyplnit (fill()).
Cíl úlohy:
Student si procvičí kreslení obdélníku metodou rect() v kombinaci s beginPath(), stroke() a fill().
Vstupní podmínky:
Student pracuje se souborem index.html, kde je vložen <canvas> s id platno. JavaScriptový kód bude ve <script> na konci stránky.
Požadovaný výstup:
-
Na plátně se objeví obdélník s modrým obrysem.
-
Vedle něj čtverec vyplněný oranžovou barvou.
-
Každý tvar začíná svou cestu (
beginPath()) a je ukončen (closePath()).
Doplňující pokyny:
-
Parametry metody
rect(x, y, w, h): první dva jsou souřadnice levého horního rohu, další dva šířka a výška. -
Nezapomeň na
beginPath()před každým tvarem, jinak se obdélníky spojí. -
Pro výplň použij
fillStyle, pro obrysstrokeStylealineWidth.
Řešení úlohy
Co je zde splněno
-
Na plátně je modrý obdélník vykreslený pomocí
rect()astroke(). -
Vedle je čtverec vyplněný oranžovou barvou pomocí
rect()afill(). -
Každý tvar má svou cestu:
beginPath()na začátku aclosePath()na konci. -
Správně nastaveny vlastnosti pro obrys (
strokeStyle,lineWidth) i výplň (fillStyle).
Vylepšení oproti začátečnické verzi
-
Vytvořena univerzální funkce
drawRect, která umí kreslit jak s výplní, tak s obrysem. -
Použit moderní zápis (
const, objekt s parametry). -
Přidán vylepšený vzhled plátna (stín, zarovnání na střed, světlé pozadí).
-
Kód je modulárnější a snadno rozšiřitelný o další tvary.