Autorské riešenie
[stiahni imp]

  • Počet riešiteľov: 3 / 3 = 100 %

  • Úspešnosť riešenia: 4,5 / 5 = 90 %

Cieľom tejto úlohy je nakresliť omaľovánku kvetu z kosoštvorcových lupienkov, ktorý má vonkajšiu a vnútornú vrstvu lupienkov. Na nasledujúcom obrázku sú jednotlivé vrstvy lupienkov farebne rozlíšené. Žltou sú vymaľované lupienky z vnútornej a oranžovou lupienky z vonkajšej vrstvy.

obrázok farebného kosoštvorcového kvetu

Keďže tento útvar je na kreslenie pomerne zložitý, je vhodné rozdeliť ho na menšie časti alebo nájsť nejakú časť, ktorá sa pravidelne opakuje. V tomto prípade sa opakujú kosoštvorcové lupienky.

zvýraznený kosoštvorcový lupienok zvýraznený kosoštvorcový lupienok

Vieme, že kosoštvorec má všetky štyri strany rovnako dlhé. Ako môžeme z obrázku vyčítať, kosoštvorec z vonkajšej vrstvy má až dve strany spoločné s kosoštvorcom z vnútornej vrstvy, preto majú oba kosoštvorce rovnaké dĺžky strán. Vnútorné a vonkajšie kosoštvorce sa ale v uhloch líšia.

Vieme, že v kosoštvorci je súčet vnútorných uhlov 360° a uhly oproti sebe sú rovnako veľké. Na nasledujúcom obrázku sú rovnakou farbou vyznačené rovnako veľké uhly.

na obrázku sú rovnakou farebou vyznačené rovnaké uhly

Pozrime sa najprv na veľkosti uhla v kosoštvorci vo vnútornej vrstve. Veľkosť zeleného uhla vieme ľahko dopočítať, pretože poznáme počet lupienkov vo vnútornej vrstve a ony dokopy dávajú 360°. Teda zelený uhol má veľkosť 360/počet lupienkov. Ako môžeme vidieť na predlženej časti kosoštvorca (znázornej sivou čiarou), zelený a oranžový uhol dávaju dokopy 180°. To sa však dá vypočítať aj z vlastnosti veľkostí uhlov v kosoštvorci.

Aké sú však veľkosti uhlov v kosoštvorci vo vonkajšej vrstve? Vidíme, že pomocná sivá čiara rozdeľuje jeden z uhlov na polovicu. Teda tento uhol má dvojnásobnú veľkosť zeleného uhla. Veľkosť druhého uhla potom ľahko dopočítame.

Keďže používame na kreslenie kosoštvorec, je vhodné vyrobiť si pomocnú procedúru, ktorá nám kosoštvorec nakreslí. Aby sme mohli kresliť hocijaký kosoštvorec, za parametre zvolíme veľkosť úhla a dĺžku strany.

;Imagine logo
viem kosostvorec :uhol :dlzka
  opakuj 2[
    do :dlzka
    vp :uhol
    do :dlzka
    vp 180 - :uhol
  ]
koniec

S použitím pomocnej procedúry kosoštvorec už len stačí správne dorátať niektoré súsedné uhly potrebné na otáčanie korytnačky a posúvať ju na miesto, z ktorého môže začať kresliť kosoštvorec z vonkajšej vrstvy.

Môžeme si tiež všimnúť, že pri kreslení kosoštvorcov vo vonkajšej vrstve, korytnačka prejde po všetkých čiarách použitých na kosoštvorce vo vnútornej vrstve, teda tento príkaz môžeme vynechať bez zmeny výsledného kvetu.

;Imagine logo
viem kresli_kvet :pocetLupienkov :dlzka
  urobTu "uhol 360/:pocetLupienkov
  opakuj :pocetLupienkov [
    ; nasledujúci príkaz sa môže vynechať
    kosostvorec :uhol :dlzka
    do :dlzka
    vl :uhol
    kosostvorec 2*:uhol :dlzka
    vp :uhol
    vz :dlzka
    vp :uhol
  ]
koniec

Ďalším zaujímavýcm spôsobom riešenia je rozloženie kvetu na šesťuholníky, ako na nasledujúcom obrázku.

zvýraznený šesťuholníkový spôsob kreslenia lupienkov

Je potrebné si uvedomiť, že súčet všetkých vnútorných uhlov v šesťuholníku je 720°. Potom stačí už len správne vypočítať všetky vnútorné uhly.

na obrázku sú rovnakou farebou vyznačené rovnaké uhly

Modrý uhol môžeme označiť napríklad alfa a žltý uhol beta.

;Imagine logo
viem sestuholnik :pocetLupenov :rozmer
  urobTu "alfa (360 / :pocetLupenov) * 2
  urobTu "beta (720 - 2*:alfa)/4
  opakuj 2[
    do :rozmer
    vp 180 - :beta
    do :rozmer
    vp 180 - :beta
    do :rozmer
    vp 180 - :alfa
  ]
koniec

;Imagine logo
viem kresli_kvet :pocetLupenov :rozmer
  opakuj :pocetLupenov[
    sestuholnik :pocetLupenov :rozmer
    vp 360/:pocetLupenov
  ]
koniec

Vaše zaujímavé riešenia a najčastejšie chyby

Túto úlohu riešili tri tímy. Dvom sa podarilo úlohu vyriešiť správne. Jeden z nich vykreslil najprv všetky kosoštvorce vo vnútornej vrstve a následne kosoštvorce vo vonkajšej vrstve. Druhý tím kreslil kosoštvorce vonkajšej vrstvy priebežne s kosoštvorcami vnútornej vrstvy.

Tretiemu sa podarilo nakresliť len vnútornú vrstvu a pri snahe o vonkajšiu vrstvu sa zamotali v uhloch. Pri týchto typoch úlohe je lepšie použiť najprv pero a papier, uhly prepočítať a až potom písať program.

Celkovo hodnotíme úlohu za veľmi dobre zvládnutú.