Rozdział 6 · Rysujemy fajne rzeczy za pomocą Turtle

Mini-projekt — rysowanie mandali wyłącznie z linii prostych

Zebrać wszystkie techniki rozdziału w jednym wzorze — od pierwszego motywu po pełny efekt — i podsumować wyniki.

Zbierz wszystkie techniki rozdziału w jednym finalnym wzorze: mandali składającej się tylko z linii prostych — zbiór promienie tej samej długości, za każdym razem obrócone o niewielki kąt.

Planowanie: co się dzieje

Pomysł prosty: stać w jednym punkcie, patrzeć w określonym kierunku ugol, Jedź do przodu i natychmiast wracaj tą samą linią – a następnie lekko skręcaj trasę i powtarzać. Jeśli powtórzymy wystarczająco wiele razy, obejmując całe 360° wokół środka, promienie połączy się w symetryczny wzór.

Jeden motyw

Na początku tylko kilka promieni, by zobaczyć samą technikę, zanim zamieni się w Bogaty wzór:

motiv.py
import turtle

screen = turtle.Screen()
screen.setup(width=420, height=420)
artist = turtle.Turtle()
artist.speed(0)
artist.pencolor("#5B24F9")

shag_ugla = 10
ugol = 0
while ugol < 60:
    artist.setheading(ugol)
    artist.forward(150)
    artist.backward(150)
    ugol += shag_ugla

screen.exitonclick()
Rezultat
Wachlarz z kilku fioletowych promieni, wychodzących z jednego punktu pod małym kątem względem siebie
Jeden motyw: kilka promieni pod lekkim kątem względem siebie nie jest jeszcze kompletną mandalą
motiv_kod.py
shag_ugla = 10
ugol = 0
while ugol < 60:
    artist.setheading(ugol)
    artist.forward(150)
    artist.backward(150)
    ugol += shag_ugla
wyprzedzanie faktów
Cykl while zostanie omówione szczegółowo później — tutaj wystarczy zobaczyć, że setheading() pozwala narysować złożony wzór w zaledwie kilku łańcuch znakówx, okrążając rogi w kółko.

Pełna tura - Ukończona mandala

Ten sam kod, tylko pętla teraz nie sięga 60°, lecz pełnego 360°:

mandala.py
import turtle

screen = turtle.Screen()
screen.setup(width=420, height=420)
artist = turtle.Turtle()
artist.speed(0)
artist.pencolor("#5B24F9")

shag_ugla = 10
ugol = 0
while ugol < 360:
    artist.setheading(ugol)
    artist.forward(150)
    artist.backward(150)
    ugol += shag_ugla

screen.exitonclick()
Rezultat
Symetryczna mandala z wieloma bezpośrednimi fioletowymi promieniami promieniującymi z centrum we wszystkich kierunkach
Ta sama technika, obrócona o pełne 360° – mandala złożona z prostych linii
mandala_kod.py
shag_ugla = 10
ugol = 0
while ugol < 360:
    artist.setheading(ugol)
    artist.forward(150)
    artist.backward(150)
    ugol += shag_ugla
Podstawowa praktyka
Drugie Kątowe Kroki

Zmień shag_ugla na 5 lub na 30 — jak zmienia się wzór?

★★ Zadanie samodzielne
Różne długości wiązki

Zmień długość forward(150) – spróbuj 80 i 250.

Challenge
Kolorowa Mandala

Dodaj artist.pencolor(„violet”

Praktyka: Mandala prostych linii
Moduł turtle otwiera natywne okno Python – uruchamiane lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie
Otwórz praktykę →

Ostateczna mapa rozdziału

Jakie polecenie powinienem Turtle?
muszę wiedzieć, gdzie jest żółw?"
position() / xcor() / ycor()
Musisz się ruszać bez rysowania?
penup() / pendown()
Trzeba trafić w konkretny punkt?
goto(x, y)
Potrzebujesz odpowiedniego wielokąta?
tura = 360 / n
Czy potrzebny jest wypełniony kształt?
begin_fill() / end_fill()
Czy potrzebujesz koła czy łuku?
circle(radius, [extent])
Czy potrzebujesz powtarzalnej losowości?
random.seed()
Główna mapa streszczenia rozdziału 6 — wracaj do niej w przyszłych projektach

Podsumowanie

Czego nauczyliśmy się w tym rozdziale

  • Ekran (turtle.Screen()) i żółwia (turtle.Turtle()) to dwa różne obiekty; żółw ma stan: pozycję, kurs, pióro, kolor.
  • Okno Turtle używa tego samego układu współrzędnych co matematyka: środek (0, 0), x prawo, y w górę.
  • forward()/backward() poruszają żółwia; left()/right() skręcić tor względem bieżącego kierunku; setheading() ustala kierunek absolutnie.
  • Kąt obrotu dla poprawnego wielokąta — 360 / n.
  • penup()/pendown() kontrolować, czy linia zostanie narysowana podczas ruchu; goto(x, y) przesuwa żółwia bezpośrednio w określony punkt na ekranie.
  • begin_fill()/end_fill() wypełniają zamknięty kontur; circle() rysuje koła i łuki; dot() daje punkt bez ruchu.
  • random.seed() sprawia, że losowa grafika jest powtarzalna — przydatne zarówno do dokumentacji, jak i debugowania.

co dalej

W rozdziale 7 wrócimy do Turtle i dopracujemy go jeszcze dokładniej, ucząc się, jak dostrojić ekran, Rysuj tekst, opanuj łuki w większym stopniu i złóż własne emotikony. Wszystko, czego się nauczyłeś tutaj — współrzędne, kąty, pióro, wypełnienie — staną się fundamentem, na którym opiera się więcej niż Dopracowywanie pracy.