14. hodina - Elipsy a kruhy


  1. Napíš program, ktorý pomocou cyklu zistí, čomu sa rovná súčet čísel 0 + 1 + 2 + ... + 99. Výsledok program vypíše pomocou print.


  1. V jazyku Python kreslíme elipsy a kruhy príkazom create_oval. Vyskúšaj:

    import tkinter
    
    canvas = tkinter.Canvas()
    canvas.pack()
    
    canvas.create_oval(10, 10, 200, 150)
    

  1. Pridaj na koniec programu príkaz na kreslenie obdĺžnika s rovnakými číslami, ako sú v príkaze create_oval. Ako bude vzájomná pozícia elipsy a obdĺžnika?


Parametre

Čísla, ktoré píšeme do zátvoriek v príkazoch canvas.create_oval a canvas.create_rectangle, nazývame parametre:

canvas.create_rectangle(x1, y1, x2, y2)
canvas.create_oval(x1, y1, x2, y2)

V príkaze create_rectangle dvojice [x1, y1], [x2, y2] určovali súradnice protiľahlých vrcholov. Aj v príkaze create_oval parametre [x1, y1], [x2, y2] určujú súradnice protiľahlých vrcholov obdĺžnika, do ktoré sa vpíše elipsa. Obdĺžnik sa však nenakreslí.


  1. Pomocou štvorcov sa dá postaviť kockuliak. Napíš program, ktorý ho nakreslí, ak poznáš súradnice:

    _images/14_01.png

  1. Zmeň predchádzajúci program tak, aby sa namiesto kockuliaka kreslil snehuliak. Ako nakreslíš kruh?


  1. Napíš program, ktorý pomocou aspoň piatich elíps nakreslí nejaké lietajúce UFO – rozmery aj farby si zvoľ:

    _images/14_02.png

    Farebné elipsy nakreslíš podobne, ako farebné obdĺžniky pomocou parametra fill:

    canvas.create_oval(x1, y1, x2, y2, fill='farba')
    

  1. Napíš podprogram strom, ktorý do premenných x, y priradí čísla 200, 150 a nakreslí pomocou elipsy a obdĺžnika strom:

    _images/14_03.png

    Koruna stromu nech je zelená elipsa so šírkou 60 a výškou 100. Kmeň je hnedý obdĺžnik široký 10 a vysoký 50:

    _images/14_04.png

  1. Uprav predchádzajúci program tak, aby sa kreslil les. V podprograme strom priraď do x, y náhodné súradnice a zavolaj tento podprogram 10 krát.

    _images/14_05.png

  1. Napíš program, ktorý pomocou canvas.create_oval nakreslí dopravnú značku. Stred kruhov nech je na pozícii [200, 100]. Veľký červený kruh má polomer 45, biely 35. Ako nakreslíš kruh, keď poznáš jeho stred a polomer?

    _images/14_06.png

  1. (*) Ufóni nám poslali takúto správu:

    _images/14_07.png

    Zrejme očakávajú, že im odpovieme, hoci aj náhodnou, podobne vyzerajúcou správou. Napíš program, ktorý takú správu vygeneruje.

    Zistili sme, že správa sa skladá z 256 malých elíps. Elipsy sú kreslené do mriežky, ktorá má 18 stĺpcov a 12 riadkov. Každé políčko mriežky má rozmery 20x20. Elipsu nakreslíš tak, že:

    • vygeneruješ dve náhodné čísla pre riadok a stĺpec, vynásobíš ich 20 a to budú súradnice stredu elipsy,

    • vygeneruješ ďalšie dve náhodné čísla od 1 do 20 pre šírku a výšku malej elipsy,

    • keď poznáš stred a veľkosť elipsy, tak ju nakreslíš.

    Toto zopakuješ 256 krát.