testovac.sk

Balíček na kreslenie

Python vo svojej základnej verzii nemá aparát na kreslenie :( Existuje však systém balíčkov (package) - kusov kódu, ktoré už niekto vytoril a dáva nám ho k dispozícii. Balíčky rozširujú množinu príkazov, ktoré môžeme v našom programe použiť. Jedným z nich je balíček na kreslenie - tkinter. Ak ho chceme používať, musíme na začiatok nášho programu napísať niekoľko riadkov (viď nižšie). Vytvorte program len s týmito riadkami a spustite. Mali by ste vidieť otvorené "plátno" - canvas, v ktorom ale zatiaľ nič nie je.

import tkinter              # chceme používať balíček tkinter

platno = tkinter.Canvas()   # balíček použijeme na vytvorenie plátna
platno.pack()               # pripraví plátno na používanie

# 'platno' je premenná, pomenovať ju môžete ľubovoľne

Súradnicový systém

Súradnicový systém funguje v canvas-e a Python-e inak, ako sme zvyknutí z matematiky. Bod [0, 0] je umiestnený v ľavom hornom rohu plochy, os x rastie zľava doprava a os y rasie zhora nadol. Príklad nižšie: Súradnice na ploche s rozmermi 300x100.

tkinter coordinate system

suradnicovy system v canvas-e

Canvas presných rozmerov

Pri vytváraní plochy na kreslenie (canvas) môžeme s použitím parametrov špecifikovať, aká veľká bude plocha, na ktorú budeme kresliť. Použijeme pri tom pomenované parametre width a height. Pozri sa na príklad ich použitia nižšie.

canvas = tkinter.Canvas(width=300, height=100)

Obdĺžniky a štvorce

Obdĺžniky kreslíme príkazom:

canvas.create_rectangle(50, 70, 320, 200)

Argumenty vyjadrujú pozície dvoch bodov, ktoré jednozančne určujú polohu a rozmery obdĺžnika - jeho dva protiľahlé vrcholy. Oba z týchto bodov majú svoje súradnice, ktoré pozostávajú z dvoch zložiek - x a y. Jednotlivé čísla - argumenty v príkaze canvas.create_rectangle sú: x-ová súradnica ľavého horného rohu, y-ová súradnica ľavého horného rohu, x-ová súradnica pravého dolného rohu a y-ová súradnica pravého dolného rohu obdĺžnika. Náš príkaz teda nakreslil obdĺžnik s ľavým horným rohom so súradnicami [50, 70] a pravým dolným rohom so súradnicami [320, 200].

Ovály a kruhy

Ovál vznikne prepísaním slova "rectangle" na "oval" v príkaze create_rectangle(). Takýto ovál je vpísaný do obdĺžnika, ktorý by pôvodne vznikol.

canvas.create_rectangle(50, 70, 320, 200)

canvas.create_oval(50, 70, 320, 200, fill="purple")

Nastavenie farby

S použitím pomenovaného parametra môžeme ľahko nastaviť farbu...

# obdĺžnikom nastavujeme farbu výplne pomocou parametra 'fill'
canvas.create_rectangle(10, 10, 200, 400, fill="orange")

# podobne to funguje pre ovály
canvas.create_oval(10, 10, 200, 400, fill="skyblue")

# tu fungujú názvy farieb ako v css...
# fajnšmekri môžu definovať farbu hexadecimálne v RGB
canvas.create_rectangle(90, 30, 150, 90, fill='#FF3399')

# pri vytváraní canvas-u môžeme nastaviť farbu pozadia pomocou parametra 'bg'
canvas = tkinter.Canvas(width=400, height=200, bg="yellow")

Text

import tkinter

canvas = tkinter.Canvas(bg="skyblue")
canvas.pack()

canvas.create_oval(10, 10, 110, 110, fill="yellow")

# prve dva parametre su [x,y] suradnce stredu textu
canvas.create_text(60, 60, text="slnko")