Rozdział 7 · Głębokie zanurzenie w Turtle
Zmieniamy kierunek rysowania
Kierunek, znak promienia i tryb mierzenia kątów — trzy powiązane idee, zebrane razem przed finalnymi mini-projektami.
Geometrię koła szczegółowo przeanalizowaliśmy już na początku rozdziału. Tutaj zebramy trzy powiązane elementy Pomysły razem—kierunek rysowania, znak promienia i tryb kąta—i przypinają je przed ostatnimi mini-projektami.
zgodnie z ruchem wskazówek zegara lub przeciwnie – Definiuje znak promienia
cw_ccw.py
import turtle
screen = turtle.Screen()
screen.setup(width=560, height=340)
artist = turtle.Turtle()
artist.speed(0)
artist.pensize(3)
#circle(70) – środek na 70 px LEWO od toru: start poniżej środka na 70,
# aby sam okrąg ustawił się wokoło (-150, 0), nie opierając się o krawędź okna
artist.penup()
artist.goto(-150, -70)
artist.pendown()
artist.pencolor("#5B24F9")
artist.circle(70)
artist.penup()
artist.goto(-150, 115)
artist.write("circle(70)", align="center", font=("Arial", 13, "bold"))
artist.goto(-150, 95)
artist.write(„przeciwnie do ruchu wskazówek zegara (+)”, align="center", font=("Arial", 11, "normal"))
# circle(-70) jest centrum na 70 px PRAWEJ stronie trasy: start to 70 stopni powyżej środka,
# tak że okrąg stoi wokół (150, 0), jest symetryczny względem pierwszego
artist.goto(150, 70)
artist.pendown()
artist.pencolor("#DB2777")
artist.circle(-70)
artist.penup()
artist.goto(150, 115)
artist.write("circle(-70)", align="center", font=("Arial", 13, "bold"))
artist.goto(150, 95)
artist.write(„zgodnie z ruchem wskazówek zegara (-)”, align="center", font=("Arial", 11, "normal"))
screen.exitonclick()
Rezultat
cw_ccw_kod.py
artist.circle(60) # przeciwnie do ruchu wskazówek zegara — dodatni promień
artist.circle(-60) # zgodnie z ruchem wskazówek zegara to promień ujemny
Tryby pomiaru kąta
Domyślnie Turtle mierzy kąty w stopniach. Jeśli z jakiegoś powodu wygodniej jest pracować
w radianach (np. dla zgodności z formułami z modułu math
z rozdziału 5) — są rozkazy degrees() oraz
radians():
radiany.py
import math
artist.radians()
artist.left(math.pi / 2) # 90° obrotu wyrażonego w radianach
artist.degrees() # wracając do zwykłych stopni
Nie zapomnij wrócić do stopni
Jeśli wywołać
radians() i zapomnij degrees() na końcu wszystkie kolejne obroty w programie będą interpretowane jako radiany, a nie stopnie, co niemal zawsze prowadzi do nieoczekiwanych rezultatów.Praktyka: obejmuje praktykę z kierunkiem rysowania
Ten sam notebook, co w rozdziale „Okrąg w kwadracie” — obejmuje również ten temat
Praktyka kursuje lokalnie