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:
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()
shag_ugla = 10
ugol = 0
while ugol < 60:
artist.setheading(ugol)
artist.forward(150)
artist.backward(150)
ugol += shag_ugla
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°:
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()
shag_ugla = 10
ugol = 0
while ugol < 360:
artist.setheading(ugol)
artist.forward(150)
artist.backward(150)
ugol += shag_ugla
Zmień shag_ugla na 5 lub na 30 — jak zmienia się wzór?
Zmień długość forward(150) – spróbuj 80 i 250.
Dodaj artist.pencolor(„violet”
Ostateczna mapa rozdziału
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.