Programovanie (1) v C/C++ FMFI UK, Prednáška 5, časť 2, 7.10.2020

Zdroj
ručne priradené
Pridané

Pozrieť na YouTube →

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.

Otvoriť AI: ChatGPT · Claude · Gemini

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.