Programovanie (1) v C/C++
1-INF-127, ZS 2024/25
SVGdraw: Rozdiel medzi revíziami
Skočit na navigaci
Skočit na vyhledávání
(8 medziľahlých úprav od rovnakého používateľa nie je zobrazených.) | |||
Riadok 1: | Riadok 1: | ||
− | |||
− | |||
Knižnica SVGdraw umožňuje vytvoriť obrázok v SVG formáte a vykresľovať do neho rôzne geometrické útvary, animovať ich a používať korytnačiu grafiku. | Knižnica SVGdraw umožňuje vytvoriť obrázok v SVG formáte a vykresľovať do neho rôzne geometrické útvary, animovať ich a používať korytnačiu grafiku. | ||
− | * | + | * Návod na použitie knižnice [[2018/19_Programovanie_(1)_v_C/C%2B%2B#Pr.C3.A1ca_v_Netbeans_s_grafickou_kni.C5.BEnicou_SVGdraw|v prostredí Netbeans]] a [[Zimný_semester, softvér#Pr.C3.A1ca_v_Kate_s_grafickou_kni.C5.BEnicou_SVGdraw|v prostredí Kate]] |
* [http://compbio.fmph.uniba.sk/vyuka/prog-data/svgdraw/ Stiahnutie knižnice] | * [http://compbio.fmph.uniba.sk/vyuka/prog-data/svgdraw/ Stiahnutie knižnice] | ||
− | * Príklady programov na [[Prednáška | + | * Príklady programov na [[Prednáška 5|prednáške 5]] |
==Vykresľovanie v SVG formáte== | ==Vykresľovanie v SVG formáte== | ||
* Ako prvé musíme vytvoriť súbor s obrázkom v SVG formáte s určitými rozmermi príkazom typu <tt>SVGdraw drawing(150, 100, "hello.svg");</tt> | * Ako prvé musíme vytvoriť súbor s obrázkom v SVG formáte s určitými rozmermi príkazom typu <tt>SVGdraw drawing(150, 100, "hello.svg");</tt> | ||
− | * Do obrázku môžeme kresliť príkazmi drawRectangle, drawEllipse, drawLine, drawText. | + | * Do obrázku môžeme kresliť príkazmi <tt>drawRectangle</tt>, <tt>drawEllipse</tt>, <tt>drawLine</tt>, <tt>drawText</tt>. |
− | * Ak chceme vykresľovať mnohouholníky, použijeme skupinu príkazov startPolygon, | + | * Ak chceme vykresľovať mnohouholníky, použijeme skupinu príkazov <tt>startPolygon</tt>, <tt>addPolygonPoint</tt> a <tt>drawPolygon</tt>. Pomocou <tt>startPolygon</tt> a <tt>addPolygonPoint</tt> postupne vymenujeme vrcholy a pomocou <tt>drawPolygon</tt> mnohouholník uzavrieme a vykreslíme. |
− | * Pomocou príkazov setLineColor, setFillColor, setNoFill nastavujeme farbu čiar a vyfarbovania. Farby zadávame buď troma číslami od 0 do 255 určujúcimi intenzitu červenej, zelenej a modrej, alebo názvom, napr. "red" ([http://www.w3.org/TR/SVG/types.html#ColorKeywords zoznam mien farieb]). Príkaz setFontSize nastavuje veľkosť písma a setLineWidth nastavuje hrúbku čiary. | + | * Pomocou príkazov <tt>setLineColor</tt>, <tt>setFillColor</tt>, <tt>setNoFill</tt> nastavujeme farbu čiar a vyfarbovania. Farby zadávame buď troma číslami od 0 do 255 určujúcimi intenzitu červenej, zelenej a modrej, alebo názvom, napr. <tt>"red"</tt> ([http://www.w3.org/TR/SVG/types.html#ColorKeywords zoznam mien farieb]). Príkaz <tt>setFontSize</tt> nastavuje veľkosť písma a <tt>setLineWidth</tt> nastavuje hrúbku čiary. |
− | * Po vykreslení všetkých útvarov ukončíme vykresľovanie príkazom | + | * Po vykreslení všetkých útvarov ukončíme vykresľovanie príkazom <tt>drawing.finish();</tt> |
− | * Po spustení programu by | + | * Po spustení programu by mal vzniknúť súbor <tt>hello.svg</tt>, ktorý si môžete prezrieť napríklad v internetovom prehliadači. |
==Animácie== | ==Animácie== | ||
− | * Príkaz wait umožní pozastaviť vykresľovanie SVG súboru o zadaný čas v sekundách, takže jednotlivé útvary sa objavujú postupne. | + | * Príkaz <tt>wait</tt> umožní pozastaviť vykresľovanie SVG súboru o zadaný čas v sekundách, takže jednotlivé útvary sa objavujú postupne. |
− | * Príkaz clear schová všetky vykreslené útvary, takže môžeme kresliť znova na prázdnu plochu. Pred príkazom clear je vhodné použiť wait. | + | * Príkaz <tt>clear</tt> schová všetky vykreslené útvary, takže môžeme kresliť znova na prázdnu plochu. Pred príkazom <tt>clear</tt> je vhodné použiť <tt>wait</tt>. |
− | * Príkaz hideItem schová objekt (napr. čiaru) so zadaným číslom. Každý kresliaci príkaz vráti číslo práve vykresleného objektu, takže si ho stačí uložiť v nejakej premennej pre neskoršie mazanie. | + | * Príkaz <tt>hideItem</tt> schová objekt (napr. čiaru) so zadaným číslom. Každý kresliaci príkaz vráti číslo práve vykresleného objektu, takže si ho stačí uložiť v nejakej premennej pre neskoršie mazanie. |
==Príkazy pre korytnačiu grafiku== | ==Príkazy pre korytnačiu grafiku== | ||
Namiesto vykresľovania obdĺžnikov, čiar a pod na zadané súradnice môžeme obrázok vytvoriť aj korytnačou grafikou. Na obrázku bude pohyb korytnačky znázornený ako červený trojuholník a za sebou bude nechávať čiernu čiaru. | Namiesto vykresľovania obdĺžnikov, čiar a pod na zadané súradnice môžeme obrázok vytvoriť aj korytnačou grafikou. Na obrázku bude pohyb korytnačky znázornený ako červený trojuholník a za sebou bude nechávať čiernu čiaru. | ||
− | * Príkazom typu Turtle turtle(200, 300, "domcek2.svg", 50, 250, 0); vytvoríme SVG obrázok určitej veľkosti a s určitým menom súboru. Posledné tri čísla udávajú počiatočnú polohu korytnačky a jej natočenie. | + | * Príkazom typu <tt>Turtle turtle(200, 300, "domcek2.svg", 50, 250, 0);</tt> vytvoríme SVG obrázok určitej veľkosti a s určitým menom súboru. Posledné tri čísla udávajú počiatočnú polohu korytnačky a jej natočenie. |
− | * Korytnačka si pamätá svoju polohu a natočenie na ploche. Príkaz forward posunie korytnačku dopredu, príkazy turnLeft a turnRight ju otočia. | + | * Korytnačka si pamätá svoju polohu a natočenie na ploche. Príkaz <tt>forward</tt> posunie korytnačku dopredu, príkazy <tt>turnLeft</tt> a <tt>turnRight</tt> ju otočia. |
− | * Príkaz setSpeed umožňuje zmeniť rýchlosť korytnačky, aby sme lepšie videli, ako sa postupne hýbe. | + | * Príkaz <tt>setSpeed</tt> umožňuje zmeniť rýchlosť korytnačky, aby sme lepšie videli, ako sa postupne hýbe. |
Aktuálna revízia z 15:57, 8. október 2019
Knižnica SVGdraw umožňuje vytvoriť obrázok v SVG formáte a vykresľovať do neho rôzne geometrické útvary, animovať ich a používať korytnačiu grafiku.
- Návod na použitie knižnice v prostredí Netbeans a v prostredí Kate
- Stiahnutie knižnice
- Príklady programov na prednáške 5
Vykresľovanie v SVG formáte
- Ako prvé musíme vytvoriť súbor s obrázkom v SVG formáte s určitými rozmermi príkazom typu SVGdraw drawing(150, 100, "hello.svg");
- Do obrázku môžeme kresliť príkazmi drawRectangle, drawEllipse, drawLine, drawText.
- Ak chceme vykresľovať mnohouholníky, použijeme skupinu príkazov startPolygon, addPolygonPoint a drawPolygon. Pomocou startPolygon a addPolygonPoint postupne vymenujeme vrcholy a pomocou drawPolygon mnohouholník uzavrieme a vykreslíme.
- Pomocou príkazov setLineColor, setFillColor, setNoFill nastavujeme farbu čiar a vyfarbovania. Farby zadávame buď troma číslami od 0 do 255 určujúcimi intenzitu červenej, zelenej a modrej, alebo názvom, napr. "red" (zoznam mien farieb). Príkaz setFontSize nastavuje veľkosť písma a setLineWidth nastavuje hrúbku čiary.
- Po vykreslení všetkých útvarov ukončíme vykresľovanie príkazom drawing.finish();
- Po spustení programu by mal vzniknúť súbor hello.svg, ktorý si môžete prezrieť napríklad v internetovom prehliadači.
Animácie
- Príkaz wait umožní pozastaviť vykresľovanie SVG súboru o zadaný čas v sekundách, takže jednotlivé útvary sa objavujú postupne.
- Príkaz clear schová všetky vykreslené útvary, takže môžeme kresliť znova na prázdnu plochu. Pred príkazom clear je vhodné použiť wait.
- Príkaz hideItem schová objekt (napr. čiaru) so zadaným číslom. Každý kresliaci príkaz vráti číslo práve vykresleného objektu, takže si ho stačí uložiť v nejakej premennej pre neskoršie mazanie.
Príkazy pre korytnačiu grafiku
Namiesto vykresľovania obdĺžnikov, čiar a pod na zadané súradnice môžeme obrázok vytvoriť aj korytnačou grafikou. Na obrázku bude pohyb korytnačky znázornený ako červený trojuholník a za sebou bude nechávať čiernu čiaru.
- Príkazom typu Turtle turtle(200, 300, "domcek2.svg", 50, 250, 0); vytvoríme SVG obrázok určitej veľkosti a s určitým menom súboru. Posledné tri čísla udávajú počiatočnú polohu korytnačky a jej natočenie.
- Korytnačka si pamätá svoju polohu a natočenie na ploche. Príkaz forward posunie korytnačku dopredu, príkazy turnLeft a turnRight ju otočia.
- Príkaz setSpeed umožňuje zmeniť rýchlosť korytnačky, aby sme lepšie videli, ako sa postupne hýbe.