Advertisement
Guest User

Drutex

a guest
Apr 7th, 2020
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.93 KB | None | 0 0
  1. # Dawid Dreżewski 3H
  2.  
  3. # Import całej biblioteki turtle.
  4. from turtle import *
  5.  
  6. # Odpowiada za sterowanie animacją "rysującego żółwia".
  7. # <<<----------------------------------------------->>>
  8. # tracer(n) <-> Jeśli n jest podane, to wyświetlana jest tylko n-ta aktualizacja ekranu.
  9. # Można tego użyć do przyspieszenia rysowania złożonej grafiki. Po wywołaniu bez argumentów zwraca n.
  10. tracer(0)
  11.  
  12. '''
  13. # Wykonanie rysunku iteracyjnie, za pomocą pętli. Zakres ograniczony do 36, co ma oznaczać pełny obrót.
  14. # (później alfa mnożona jest razy 10, dzięki czemu mamy zakres od 0 do 360 stopni, co dziesięć: 0, 10, 20, ... , 360).
  15. for alfa in range(36):
  16.    up() # Podniesienie elementu rysującego (długopisu - żółwia).
  17.    home() # Ustawienie żółwia w punkcie (x=0,y=0) i ustawienie początkowej orientacji - domyślnie + 90 stopni "w prawo".
  18.    goto(0, -80) # Ruch żółwia do punktu (x,y), w tym przypadku do (x=0,y=-80); jeśli "długopis" jest na "płótnie", to rysuj linię; nie zmienia się orientacja żółwia.
  19.    down() # Postaw "długopis"; jeśli wystąpi ruch, to będzie rysowana linia.
  20.    rt(270 + alfa * 10) # rt(n) - obróć żółwia w prawo o n stopni; tutaj: (270 + alfa * 10) stopni, co kolejno da kąt względem osi OX: 0, 10, 20, ..., 350 stopni.
  21.    fd(360 - 10 * alfa) # fd(n) - ruch żółwia do przodu o dany dystans n od obecnego położenia, tutaj (360 - 10 * alfa), co kolejno da: 360, 350, ..., 10, 0.
  22. '''
  23.  
  24. # Wykonanie rysunku rekurencyjnie, za pomocą wywoływania funkcji przez samą siebie.
  25. def drutex(alfa=0):  # Domyślna wartość alfa wynosi 0.
  26.     if alfa <= 36:  # Zakres ograniczony do 36, co ma oznaczać pełny obrót; (później alfa mnożona jest razy 10, dzięki czemu mamy zakres od 0 do 360 stopni, co dziesięć: 0, 10, 20, ... , 360).
  27.         up() # Podniesienie elementu rysującego (długopisu - żółwia).
  28.         home() # Ustawienie żółwia w punkcie (x=0,y=0) i ustawienie początkowej orientacji - domyślnie + 90 stopni "w prawo".
  29.         goto(0, -80) # Ruch żółwia do punktu (x,y), w tym przypadku do (x=0,y=-80); jeśli "długopis" jest na "płótnie", to rysuj linię; nie zmienia się orientacja żółwia.
  30.         down() # Postaw "długopis"; jeśli wystąpi ruch, to będzie rysowana linia.
  31.         rt(270 + alfa * 10) # rt(n) - obróć żółwia w prawo o n stopni; tutaj: (270 + alfa * 10) stopni, co kolejno da kąt względem osi OX: 0, 10, 20, ..., 350 stopni.
  32.         fd(360 - 10 * alfa) # fd(n) - ruch żółwia do przodu o dany dystans n od obecnego położenia, tutaj (360 - 10 * alfa), co kolejno da: 360, 350, ..., 10, 0.
  33.         drutex(alfa + 1) # Po zakończeniu wcześniejszych operacji dostanie wywołana funkcja drutex z wartością alfa większą o 1 (kąt zmieniony jest o 10 stopni).
  34.  
  35. drutex() # Pierwsze wywołanie funkcji o nazwie drutex z argumentem domyślnym
  36.  
  37. exitonclick()  # Sterowanie oknem - zamyka się ono po kliknięciu na "płótno".
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement