Úloha 3 – Kreslení čar pomocí beginPath(), moveTo(), lineTo()
| Website: | Moodle ZČU |
| Kurs: | Sada úloh pro procvičení v předmětu KVD/PGM1P (BP Vítek Dolný) |
| Buch: | Úloha 3 – Kreslení čar pomocí beginPath(), moveTo(), lineTo() |
| Gedruckt von: | Nepřihlášený host |
| Datum: | Sonntag, 18. Oktober 2026, 04:25 |
Úvod do úlohy
Canvas 2D funguje podobně jako kreslení tužkou na papír. Nejprve „zvedneme tužku“ (beginPath()), posuneme ji na určité místo (moveTo(x, y)), nakreslíme čáru do jiného bodu (lineTo(x, y)) a nakonec řekneme „teď to obtáhni“ (stroke()). Díky tomu máme plnou kontrolu nad tím, kdy se kreslení začne, kam se vede, jak silná je čára a jakou má barvu. Tento mechanismus se nazývá cesta (path).
Teorie a principy
-
beginPath(): začne novou cestu, stará už se neovlivňuje. -
moveTo(x, y): posune virtuální „pero“ na souřadnice, aniž by se něco vykreslilo. -
lineTo(x, y): přidá úsečku od aktuálního bodu do nového bodu. -
stroke(): obkreslí (vykreslí) aktuální cestu podle nastavení stylu čáry. -
ctx.lineWidth: nastavuje tloušťku čáry (v pixelech). -
ctx.strokeStyle: nastavuje barvu nebo vzor čáry. -
Správné pořadí je beginPath → moveTo → lineTo → stroke. Pokud
beginPath()vynecháme, nové čáry se budou „lepit“ k těm starým.
Praktický příklad kódu
Tento kód nakreslí dvě čáry – jednu vodorovnou červenou a jednu šikmou modrou.
Typické chyby
-
Zapomenuté
beginPath(): nové úsečky se připojí k těm starým a čára bude pokračovat, kam student nechtěl. -
Volání
stroke()příliš brzy: pokud zavolámestroke()hned pomoveTo()bezlineTo(), nic se nevykreslí. -
Nesprávné pořadí nastavení stylů: je třeba změnit
lineWidthastrokeStylepředstroke(). -
Souřadnice mimo plátno: pokud použijí hodnoty větší než
widthneboheight, čára se nebude zobrazovat.
Shrnutí
-
Pro kreslení čar musíme pracovat s cestami (
beginPath,moveTo,lineTo). -
Vždy kreslení zakončujeme příkazem
stroke(). -
lineWidthurčuje tloušťku čáry,strokeStylejejí barvu. -
Nezapomeňte začít novou cestu (
beginPath()), pokud kreslíte další úsečku.
Úloha
Zadání (kontext úlohy):
Na prázdné plátno potřebujeme nakreslit dvě čáry – jednu vodorovnou a druhou šikmou. Čáry budou mít různé barvy a tloušťky.
Cíl úlohy:
Student si procvičí práci s cestou (path) – použití metod beginPath(), moveTo(), lineTo() a stroke().
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:
-
První čára: vodorovná, červená, silnější (tloušťka např. 4 px).
-
Druhá čára: šikmá, modrá, tenčí (tloušťka např. 2 px).
-
Každá čára začíná vlastní cestu pomocí
beginPath().
Doplňující pokyny:
-
Nastav tloušťku (
lineWidth) a barvu (strokeStyle) vždy před vykreslenímstroke(). -
Pokud vynecháš
beginPath(), obě čáry se spojí do jedné.
Řešení úlohy
Co je zde splněno
-
Vytvořen
<canvas>s idplatnoa pevnými rozměry. -
Získán 2D kontext a ověřeno, že není
null. -
Vykresleny dvě čáry pomocí
beginPath(),moveTo(),lineTo()astroke(). -
Každá čára má svou vlastní barvu a tloušťku.
-
Díky
beginPath()se čáry nespojují do jedné.