Autorské riešenie
[stiahni]

Srdiečko vieme vykresliť viacerými spôsobmi. Jeden postup je taký, že nakreslíme srdiečko z 3 červených a 2 bielych kruhov, ktoré sa prekrývajú.

srdce_plne_1  srdce_plne_2  srdce_plne_3 

Program na vykreslenie plného srdiečka môže vyzerať nasledovne:

viem kresli_srdce2
  ph

  nechFp "červená
  vl 90
  do 50
  kruh 100
  vz 100
  kruh 100
  do 50
  vl 90
  do 50
  kruh 100

  do 50
  vp 90
  do 50
  nechFp "biela
  kruh 100
  vz 100
  kruh 100

  do 50
  vp 90
  do 100
  nechFp "čierna
  pd
koniec

Iným postupom nakreslíme srdiečko bez výplne. Náš postup vychádza z náčrtu na nižšie uvedených obrázkoch. Postupne vykreslíme štyri kružnicové oblúky s rovnakým polomerom a so stredmi S1, S2, S3 a S4.

srdce          srdce_popis

Na vykreslenie kružnicových oblúkov použijeme príkaz obrysElipsy. Pre vykreslenie prvého kružnicového oblúku použijeme príkaz obrysElipsy [100 100 -180 90]. Prvé dva parametre, predstavujúce dĺžky hlavnej a vedľajšej osi elipsy, sú pre kružnicu rovnaké. Ďalšie dva (nepovinné) parametre predstavujú počiatočný a koncový uhol oblúka. Uhly sa merajú od severu, vľavo sú záporné hodnoty a vpravo kladné.

Ďalšie tri oblúky vykreslíme podobným spôsobom pomocou príkazov:

obrysElipsy [100 100 -90 180]

obrysElipsy [100 100 0 90]

obrysElipsy [100 100 -90 0] 

Program na vykreslenie obrysového srdiečka môže vyzerať nasledovne:

viem kresli_srdce1
  nechFp "cervena
  nechHp 3
  ph
  vl 90
  do 50
  vp 90
  pd
  obrysElipsy [100 100 -180 90]

  ph
  vp 90
  do 100
  vl 90
  pd
  obrysElipsy [100 100 -90 180]

  ph
  vl 90
  do 100
  vl 90
  do 100
  vl 180
  pd
  obrysElipsy [100 100 0 90]

  ph
  vp 90
  do 100
  vl 90
  pd
  obrysElipsy [100 100 -90 0]

  ph
  do 100
  vl 90
  do 50
  vp 90
  pd
koniec

Program na vykreslenie troch plných srdiečok s menami ľudí môže vyzerať nasledovne:

viem kresli2
;nastavenie písma, ktoré umožní vykresľovať aj pootočený text
  nechpísmo [|Tahoma| [14 700 0 0 0 238]]

;vykreslenie 1. srdca s venovaním
  ph
  vl 90
  do 250
  vp 90
  pd
  kresli_srdce2
  ph
  vz 150
  pd
  text "mamke

;vykreslenie 2. srdca s venovaním
  ph
  do 150
  vp 90
  do 250
  vl 90
  pd
  kresli_srdce2
  ph
  vz 150
  pd
  text "ockovi

;vykreslenie 3. srdca s venovaním
  ph
  do 150
  vp 90
  do 250
  vl 90
  pd
  kresli_srdce2
  ph
  vz 150
  pd
  text "|pani učiteľke|

;návrat na pôvodné miesto
  ph
  vl 90
  do 250
  vp 90
  do 150
koniec

srdcia_plne

V programe na vykreslenie troch obrysových srdiečok použijeme v tejto procedúre namiesto procedúry kresli_srdce2 procedúru kresli_srdce1.

Poznámka:
Srdce vieme nakresliť aj takým spôsobom, že zaoblene vykreslíme lomenú čiaru popísanú viacerými bodmi:

viem kresli_srdce
  kresliZaoblene [
    obrys [
      [   0 -100]
      [ -10  -80]
      [-100    0]
      [ -80   50]
      [ -40   50]
      [ -10   20]
      [   0    0]
      [  10   20]
      [  40   50]
      [  80   50]
      [ 100    0]
      [  10  -80]
      [   0 -100]
    ]
  ]
koniec

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

Úlohu riešilo 12 tímov. Žiaci väčšinou písali mená ľudí do srdiečok, traja mali vypísané mená pod srdiečkami. Ale to sa nepovažuje za nejakú veľkú chybu.

V jednom prípade sa stalo, že mená neboli ani pod srdiečkami ani vo vnútri srdiečok, ale vypísalo ich nad príkazovým riadkom. V ďalšom prípade, po spustení príkazu „kresli“, sa vytvorilo len jedno srdiečko bez mena, ale po opakovanom zadávaní príkazu bolo tých srdiečok viac (bez mien) – ale boli rôzne otočené. Žiaci mal vytvorené aj procedúry na konkrétne mená, ale nezobrazovalo to správne.