Úloha 2 – Ověření kontextu a základní kreslení do canvasu
| Site: | Moodle ZČU |
| Course: | Sada úloh pro procvičení v předmětu KVD/PGM1P (BP Vítek Dolný) |
| Book: | Úloha 2 – Ověření kontextu a základní kreslení do canvasu |
| Printed by: | Guest user |
| Date: | Sunday, 18 October 2026, 10:00 AM |
Úvod do úlohy
Samotný element <canvas> je jen prázdná plocha. Abychom na ni mohli kreslit, potřebujeme z ní získat tzv. vykreslovací kontext. Ten nám poskytne metody, kterými můžeme kreslit tvary, čáry, obrázky nebo text. Nejčastěji používáme 2D kontext, který vytvoříme pomocí getContext('2d'). Pokud kontext nezískáme, plátno zůstane prázdné a pokusy o kreslení povedou k chybám.
Teorie a principy
-
Vykreslovací kontext 2D (
'2d') je objekt, který nám umožňuje kreslit na plátno jako na papír – voláme jeho metody typufillRect,strokeRect,fillTextapod. -
Kontext získáváme voláním:
-
Pokud se kontext nepodaří získat, metoda vrátí
null. Proto je důležité tento výsledek zkontrolovat. -
Je také nutné, aby
<canvas>mělo nastavené atributywidthaheightpřímo v HTML. Jinak se kresba může zobrazit rozmazaně.
Praktický příklad kódu
Typické chyby
-
Zapomenutý atribut
widthneboheightv HTML → kresba se roztahuje podle CSS a vypadá rozmazaně. -
Ignorování hodnoty
null→ kód se snaží volat metody na neexistujícím kontextu a spadne. -
Špatné pořadí načtení – pokud voláme
getElementByIddříve, než se načetl<canvas>, dostanemenull. Řešením je umístit<script>až za<canvas>nebo použít atributdefer.
Shrnutí
-
<canvas>samo o sobě nekreslí – potřebujeme získat 2D kontext pomocígetContext('2d'). -
Kontext může být
null, proto vždy kontrolujeme, zda se vytvořil. -
Rozměry nastavujte jako atributy
widthaheightpřímo v HTML, jinak bude obraz rozmazaný. -
Jakmile máme kontext, můžeme kreslit tvary, texty a obrázky.
Úloha
Zadání (kontext úlohy):
Máš na stránce vložený <canvas>, ale ten zatím nic nekreslí. Abychom mohli začít, je potřeba získat 2D kontext a ověřit, že se to povedlo.
Cíl úlohy:
Student si procvičí získání 2D kontextu z elementu <canvas> a jednoduchou kontrolu, zda je k dispozici.
Vstupní podmínky:
Student pracuje se souborem index.html, kde je vložený <canvas> s id platno. Kód JavaScriptu bude přímo ve <script> na konci stránky.
Požadovaný výstup:
-
Pomocí
document.getElementByIdzískáš odkaz na<canvas>. -
Pomocí
getContext("2d")se vytvoří proměnnáctx. -
Pokud je
ctx == null, vypíše se do stránky hláška „Chyba: kontext se nepodařilo získat“. -
Pokud se kontext podaří získat, vykreslí se na plátno jeden vyplněný obdélník.
Doplňující pokyny:
-
Umísti
<script>až za<canvas>, aby byl element načtený dříve, než se na něj odkazuješ. -
Nezapomeň nastavit atributy
widthaheightpřímo na<canvas>.
Řešení úlohy
Co je zde splněno
-
Do HTML vložen
<canvas>s atributywidth="400"aheight="200". -
Pomocí
document.getElementById()získán odkaz na plátno. -
Použita metoda
getContext("2d")a výsledek uložen do proměnnéctx. -
Přidána podmínka, která vypíše chybu, pokud je
ctx == null. -
Pokud se kontext podaří získat, na plátno se vykreslí obdélník.
Poznámky
Umístění
<script>až za<canvas>je nutné, aby byl prvek v DOM dostupný.Výpis chyby
document.write()se použije jen pro jednoduchost – v praxi se spíše píše chybová hláška do určitého elementu.