Autorské riešenie
[stiahni]

Táto úloha vyzerá na prvý pohľad ťažká. Ukážeme si však, že tomu tak nie je.

Skúsme si, bez veľkej matematiky, predstaviť, ako by sa dala n-cípa hviezdička nakresliť. Vedeli by sme nakresliť takúto cik-cakovú čiaru?

Asi áno. Nie je na nej nič komplikované. Uhly, o ktoré sa bude korytnačka otáčať sú v každom cípe rovnaké.

Časť programu, ktorá by vykreslila takéto cik-caky by mohla vyzerať nasledovne:

opakuj :pocetCipov [
  urobTu "dlzkaRamena 100
  urobTu "uhol 35
  do :dlzkaRamena
  vl 180 - :uhol
  do :dlzkaRamena
  vp 180 - :uhol
]

Ak zoberieme takéto cik-caky a ohneme ich do kruhu, dostaneme hviezdičku. Ohneme ich tak, aby sa dve modré čiary navzájom prekryli.

Pri tomto ohýbaní sa nám však zmenia niektoré z uhlov. Ak vnútorné uhly v cípoch hviezdy zachováme, musia sa roztiahnuť vonkajšie uhly. Časť o ktorú sa musia roztiahnuť je vyznačená zelenou farbou.

Ostáva nám teda zistiť, aký veľký je zelený uhol. Ani to nie je až také ťažké. Modrá čiara z konca cik-caku sa musela otočiť o 360° aby sa mohla prekryť s modrou čiarou zo začiatku. Zelené uhly musia teda dokopy dať uhol 360°. Tento uhol sa rovnomerne rozdelil medzi jednotlivé vonkajšie uhly. Každý zo zelených uhlov má teda veľkosť: 360 / :pocetCipov.

Celá procedúra tak môže vyzerať takto:

viem hviezda :pocetCipov
  urobTu "dlzkaRamena 100
  urobTu "uhol 35
  opakuj :pocetCipov [
    do :dlzkaRamena
    vl 180 - :uhol
    do :dlzkaRamena
    vp 180 - (:uhol + 360 / :pocetCipov)
  ]
koniec

Všimnime si ešte ďalšiu zaujímavú vec. Je úplne jedno, aký veľký je červený uhol. Ten si môžeme zvoliť skoro ľubovoľne (asi by mal byť väčší ako 0°a menší ako 180°).

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

Najčastejšie nedostatky, ktorých ste sa dopustili vo svojich riešeniach a naše odporúčania:

  • veľa z vás namiesto trojcípej hviezdy nakreslilo len trojuholník,
  • v niektorých prípadoch nefungovalo vykreslenie hviezdy pre párny počet cípov,
  • niektorí z vás nekreslili hviezdu, ale len lúče od stredu,
  • problém ste mali aj s výpočtom uhlov a hviezda sa v niektorých prípadoch neuzatvorila (ramená sa nestretli).