obrazky
-
  1. Pomocou elíps a obdĺžnikov nakreslite takéto písmeno D:

pismenoD

  1. Dláždič mal rovnomerne poukladať dlažobné kocky do jednej rady. Mal však dobrú náladu a medzi jednotlivými kockami nechával náhodné medzery. Vytvorte program dlazobne_kocky.py a v ňom podprogran rad s parametrom y, ktorý nakreslí do grafickej plochy vedľa seba 20 kociek s rozmerom 10x10. Prvá kocka má x-ovú súradnicu ľavého horného rohu 10 a každá ďalšia má x-ovú súradnicu väčšiu o náhodné číslo z rozsahu 12-20. Z-ovú súradnicu majú všetky kocky rovnakú a je daná parametrom y. Zavolajte podprogram nasledujúcim spôsobom:

     for i in range(15):
         rad(5 + i * 15)
    

Výsledok by mal vyzerať podobne ako na obrázku:

dlazdic

Práca s myšou

  1. Vytvorte nový program mys.py a prepíšte doňho nasledujúci kód. Program potom spustite.

     import tkinter
     canvas = tkinter.Canvas()
     canvas.pack()
    
     def klik(mys):
         print(mys.x, mys.y)
    
     canvas.bind('<B1-Motion>', klik)
    

Pribudol nový príkaz canvas.bind, vďaka nemu bude od tejto chvíle grafická plocha vedieť, čo má urobiť, keď nad ňou stlačíte ľavé tlačidlo myši a potom myšou pohneme. V textovom okne sa začnú vypisovať čísla. Čo tieto čísla znamenajú? Ako musíme zmeniť program, ak by sme chceli, aby reagoval na stlačenie stredného alebo pravého tlačidla myši?

  1. Namiesto príkazu print v predchádzajúcom podprograme klik použite príkaz canvas.create_text, pomocou ktorého vykreslíme znak ‘*’. Znak vykreslite na pozícii, kde sa nachádza myš. Zmeňte veľkosť, font a farbu fontu.

  2. Podprogram klik v programe mys.py prerobte tak, aby vykresľoval farebný krúžok. Farbu zvoľte pomocou príkazu vetvenia tak, aby naľavo od x = 150 kreslil program červené krúžky a napravo zelené. Polomer krúžkov bude 5. Napríklad:

klik

  1. Dopíšte do predchádzajúceho programu nové riadky kódu:

     import tkinter
     canvas = tkinter.Canvas()
     canvas.pack()
     def klik(mys):
     …
     …
     def zmaz(mys):
         canvas.delete('all')
    
     canvas.bind('<B1-Motion>', klik)
     canvas.bind('<ButtonPress-3>', zmaz)
    

Teraz sme pridali do programu funkcionalitu, ktorá sa prejaví pri kliknutí pravým tlačidlom myši. Vyskúšajte si to. Použili sme canvas.delete(‘all’), pomocou ktorého vymažeme grafickú plochu.

  1. Poďme sa naučiť používať nový grafický príkaz canvas.create_line(x1, y1, x2, y2). Pomocou tohto príkazu vieme nakresliť úsečku z bodu [x1, y1] do bodu [x2, y2]. Vytvorte nový program luce.py a skopírujte do neho nasledujúci kód.

     import tkinter
     canvas = tkinter.Canvas()
     canvas.pack()
    
     def klik(mys):
         canvas.create_line(150, 100, mys.x, mys.y)
    
     def smaz(mys):
         canvas.delete('all')
    
     canvas.bind('<B1-Motion>', klik)
     canvas.bind('<ButtonPress-3>', smaz)
    

Nastavte farbu úsečky na červenú.

  1. *Vytvorte nový program sprej.py, skopírujte doňho kód z príkladu 4. Program bude kresliť na plochu tak, aby vznikol efekt spreja. Najprv si do premennej farba uložte farbu, ktorou chcete aby program kreslil. Napr. farva = ‘blue’

Budeme upravovať podprogram klik: - Najprv náhodne zvolíme dve čísla dx a dy z intervalu <-30, 30> (pomocou príkazu random.randint(-30, 30)) - Táto dvojica čísel vyjadruje posunutie nakreslenej farebnej bodky oproti pozície myši, teda [mys.x+dx, mys.y+dy] - Na túto posunutú pozíciu nakreslite pomocou príkazu canvas.create_text znak ‘+’. Farbu použite z premennej farba. - Tento postup zopakujte pomocou cyklu 50-krát, čím sa vykreslí 50 malých znakov ‘+’

sprej

-
Copyright © 2008-2025 Miroslava Valíková