1. Želví grafika¶
Čísla
Proměnné
Opakování
Funkce
Matematická knihovna
Želví grafika
Pokud budete knihovnu turtle
využívat mimo online prostředí cvičebnice,
je potřeba ukončit kreslení funkcí done
:
from turtle import Turtle, done
julie = Turtle()
# kresleni ...
done()
1.1. Rozcvička¶
1.1.1. Jednoduché obrázky¶
Nejprve si zkuste nakreslit nějaký jednoduchý obrázek, třeba trojúhelník, nebo domeček.
from turtle import Turtle
julie = Turtle()
# TODO: trojuhelnik / domecek / cokoliv
1.1.2. Čtverec¶
Využijte for cyklus pro nakreslení čtverce o délce strany 100 pixelů.
from turtle import Turtle
julie = Turtle()
# TODO: vykresleni ctverce
1.1.3. Obecný čtverec¶
Napište funkci pro vykreslení čtverce s danou délkou strany.
from turtle import Turtle
julie = Turtle()
def square(side):
# nahradte "pass" vykreslenim ctverce o delce strany 'side'
pass
square(100)
Poznámka: příkaz pass
nic nedělá, pouze zastupuje tělo zatím
neimplementované funkce (díky tomu je program syntakticky správně).
1.1.4. Obecný pětiúhelník¶
Napište funkci pro vykreslení pravidelného pětiúhelníku s danou délkou strany.
from turtle import Turtle
julie = Turtle()
def pentagon(side):
pass
pentagon(100)
1.1.5. N-nožka¶
Napište funkci, která nakreslí stonožku se zadaným počtem článků.
from turtle import Turtle
julie = Turtle()
def centipede(n):
pass
centipede(7)
1.2. Pokročilé kreslení¶
1.2.1. Mnohoúhelníky¶
Napište obecnou funkci pro vykreslení libovolného pravidelného n-úhelníku.
from turtle import Turtle
julie = Turtle()
def polygon(n, side):
pass
polygon(3, 180)
polygon(5, 100)
1.2.2. Hvězdy¶
Napište obecnou funkci pro vykreslení hvězdy. Hvězda je zobecněním
pravidelného n-úhelníka, kde želva nenavštěvuje bezprostředně sousední vrcholy,
ale „přeskakuje“. Délka skoku je daná parametrem step
, ten je např. pro pro
první, pěticípou hvězdu roven 2 a pro druhou, sedmicípou hvězdu roven 3. Při
step = 1 půjde o n-úhelník.
from turtle import Turtle
julie = Turtle()
def star(n, step, side):
pass
star(5, 2, 100)
Vypočítat správnou velikost úhlu zatáčení není jednoduché. Použijte tužku a papír.
(zdroj: XKCD)
1.2.3. Diamant¶
Napište funkci pro vykreslení diamantu.
from turtle import Turtle
julie = Turtle()
def diamant(n, side):
pass
diamant(12, 30)
1.2.4. Spirála¶
Napište funkci pro vykreslení spirály.
from turtle import Turtle
julie = Turtle()
def spiral(n, angle, step):
pass
spiral(100, 61, 1)
1.2.5. Kružnice¶
Pomocí funkce pro mnohoúhelníky zkuste vykreslit kružnici. Pak napište funkci pro vykresleni kružnice o zadaném poloměru. (Nápověda: využijte porovnání obvodů kružnice a pravidelného n-úhelníku).
from math import pi
from turtle import Turtle
julie = Turtle()
julie.speed(10)
def circle(r):
pass
circle(90)
1.2.6. Kytky¶
Napište funkci pro vykreslení kytky. Může být užitečné si nejprve napsat pomocnou funkci pro vykreslení oblouku (kruhové výseče) o zadaném poloměru a úhlu.
from math import pi
from turtle import Turtle
julie = Turtle()
julie.speed(10)
def flower(radius, angle, leaves):
pass
flower(100, 80, 9)
1.2.7. Čtvercová spirála¶
Napište funkci pro vykreslení čtvercové spirály.
from turtle import Turtle
from math import atan, sqrt, degrees
julie = Turtle()
def square_spiral(n, size):
pass
square_spiral(10, 100)