Úloha 3 – Kreslení kruhů a oblouků metodou arc()
| Site: | Moodle ZČU |
| Course: | Sada úloh pro procvičení v předmětu KVD/PGM1P (BP Vítek Dolný) |
| Book: | Úloha 3 – Kreslení kruhů a oblouků metodou arc() |
| Printed by: | Nepřihlášený host |
| Date: | Sunday, 18 October 2026, 5:55 AM |
Úvod do úlohy
Kruhy a oblouky patří k základním stavebním prvkům v grafice. Používají se nejen pro dekorace, ale i pro grafy, ukazatele nebo hry. V <canvas> se kruh (nebo část kruhu) kreslí pomocí metody arc(x, y, r,
startAngle, endAngle), která definuje oblouk podle středu, poloměru a rozsahu úhlů. Díky tomu lze nakreslit jak celé kružnice, tak půlkruhy nebo různé výseče. Studenti si tak uvědomí, že canvas pracuje s úhly v radiánech, a že pro zobrazení výsledného tvaru je nutné cestu dokončit voláním stroke() (obrys) nebo fill() (výplň).
Teorie a principy
-
Syntaxe:
ctx.arc(x, y, r, startAngle, endAngle)-
x, y– souřadnice středu kruhu, -
r– poloměr, -
startAngle– počáteční úhel v radiánech, -
endAngle– koncový úhel v radiánech.
-
-
Radiány vs. stupně:
-
0 rad = pravý směr (osa X doprava),
-
Math.PI= 180°, -
2 * Math.PI= 360° (celý kruh).
-
-
Cesta:
-
vždy začínáme
beginPath(), -
definujeme oblouk pomocí
arc(), -
kresbu ukončíme
stroke()nebofill().
-
-
Výseče a půlkruhy:
-
změnou
startAngleaendAnglezískáme část kruhu, -
např.
0ažMath.PI= půlkruh.
-
Praktické příklady kódu
Typické chyby
-
Zapomenuté
beginPath()– oblouky se spojují s předchozími tvary. -
Chybějící
stroke()nebofill()– tvar se nevykreslí, protože cesta nebyla dokončena. -
Použití stupňů místo radiánů – např. zadání 180 místo
Math.PInevytvoří půlkruh, ale obrovský oblouk. -
Neuzavřený sektor – pokud chceme výseč, musíme se vrátit zpět do středu (
moveTo+closePath).
Shrnutí
-
Kruh a oblouky kreslíme metodou
arc(x, y, r, start, end). -
Úhly se zadávají v radiánech – celý kruh je
2 * Math.PI. -
Výsledný tvar se zobrazí až po volání
stroke()nebofill(). -
Půlkruhy a výseče vznikají změnou rozsahu úhlů.
-
Pro sektory nezapomeňte cestu uzavřít pomocí
closePath().
Úloha
Zadání (kontext úlohy):
Chceme si vyzkoušet kreslení kruhů a oblouků na plátně. Nakreslíme jeden kruh jen s obrysem, druhý vyplněný a také půlkruh.
Cíl úlohy:
Student si procvičí použití metody arc(), práci s radiány a vykreslení obrysu (stroke) i výplně (fill).
Vstupní podmínky:
Student pracuje se souborem index.html, kde je vložen <canvas> s id platno. JavaScript bude ve <script> na konci stránky.
Požadovaný výstup:
-
Na plátně bude:
-
modrý kruh jen s obrysem,
-
oranžový vyplněný kruh,
-
zelený půlkruh.
-
-
Každý tvar začíná voláním
beginPath()a končístroke()nebofill().
Doplňující pokyny:
-
Celý kruh se kreslí úhly od
0do2 * Math.PI. -
Půlkruh vytvoříš od
0doMath.PI. -
Nezapomeň, že metoda
arc(x, y, r, startAngle, endAngle)potřebuje úhly v radiánech.
Řešení úlohy
Co je zde splněno
-
Modrý kruh s obrysem vytvořen metodou
arc()a vykreslen přesstroke(). -
Oranžový kruh vyplněný pomocí
fill(). -
Zelený půlkruh vykreslen jako oblouk od 0 do
Math.PI. -
Všechny tvary začínají
beginPath()a končístroke()nebofill().