Úloha 3 – Kreslení čar pomocí beginPath(), moveTo(), lineTo()
Ú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.