Programovanie (1) v C/C++ FMFI UK, Prednáška 5, časť 2, 7.10.2020
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Záverečný príklad z piatej prednášky ukazuje použitie grafickej knižnice SVG Draw a prácu so štruktúrami uloženými v poli. Program náhodne vygeneruje množinu kruhov s rovnakým polomerom, zistí, ktoré dvojice sa pretínajú, a výsledok vykreslí do súboru kruhy.svg tak, že pretínajúce sa kruhy majú červený okraj a ostatné čierny. Štruktúra kruh obsahuje súradnice stredu, polomer a logickú hodnotu, či sa kruh s niečím pretína. Súradnice sa volia tak, aby celý kruh ležal v obrázku, a pretínanie sa testuje porovnaním vzdialenosti stredov so súčtom polomerov. Prvok poľa možno používať dvoma spôsobmi: pristupovať k jeho položkám cez bodku alebo ho celý odovzdať funkcii referenciou.
- - Program kompiluje spolu so súborom svg.cpp príkazom g++ a vytvára súbor kruhy.svg, ktorý sa otvorí napríklad v prehliadači.
- - Štruktúra kruh má položky x, y, polomer a pretina_sa; kruhy sú uložené v poli.
- - Súradnice stredu sa generujú ako rand() % (velkost - 2*polomer) + polomer, aby sa kruh zmestil do obrázka.
- - Dva kruhy sa pretínajú, ak je vzdialenosť ich stredov menšia alebo rovná súčtu polomerov.
- - Pri porovnávaní dvojíc treba vylúčiť i == j, inak by sa každý kruh pretínal sám so sebou.
- - Prvok poľa štruktúr je „krabička“ so všetkými položkami; pristupuje sa k nim cez kruhy[i].x alebo sa celý prvok pošle funkcii referenciou.
- - Kruh sa kreslí príkazom Draw Ellipse s rovnakými hodnotami oboch polomerov.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky