Rozdział 7 · Głębokie zanurzenie w Turtle

Mini-projekt — emotikon

Zbieramy wszystkie techniki rozdziału w jednym przyjaznym rysunku, etapami — i podsumowujemy wyniki.

Co zbudujemy

Ostateczny mini-projekt rozdziału — i całego bloku o Turtle.. Złożymy przyjazną twarz z prymitywów, które omawialiśmy przez cały rozdział: wypełnienie, punkty, łuk.

smajlik.py
import turtle

screen = turtle.Screen()
screen.setup(width=340, height=340)
artist = turtle.Turtle()
artist.speed(0)

artist.penup()
artist.goto(0, -100)
artist.pendown()
artist.fillcolor("yellow")
artist.pencolor("#0D0230")
artist.pensize(2)
artist.begin_fill()
artist.circle(100)
artist.end_fill()

artist.penup()
artist.goto(-35, 35)
artist.pendown()
artist.dot(20, "black")
artist.penup()
artist.goto(35, 35)
artist.pendown()
artist.dot(20, "black")

artist.penup()
artist.goto(-45, -25)
artist.setheading(-60)
artist.pendown()
artist.pensize(4)
artist.circle(55, 120)

artist.hideturtle()

screen.exitonclick()
Rezultat
Żółty kółko z dwoma czarnymi kropkami – oczami i zakrzywionym uśmiechem z grubej linii
Efekt końcowy: żółta twarz, dwa oczy i łukowy uśmiech

Rozłożymy twarz na prymitywy

SzczegółyZ czego się składa?Tool
Facezacienionym okręgu o promieniu 100fillcolor() + circle() + begin_fill()/end_fill()
Oczydwa punktydot()
Uśmiechłuk okręgu o promieniu 60, extent 120°circle(radius, extent)

Plan współrzędnych

SzczegółyWspółrzędna/Kąt
Lewe Oko(-35, 120)
Prawe oko(35, 120)
Smile Start(-50, 60), kurs -60°

Etap 1: Twarz

smajlik_lico.py
import turtle

screen = turtle.Screen()
screen.setup(width=340, height=340)
artist = turtle.Turtle()
artist.speed(0)

# circle(100) centruje okrąg w 100 px PO LEWEJ od kursora — zaczynamy na
# 100 poniżej (0, -100), aby twarz znalazła się dokładnie w centrum okna (0, 0)
artist.penup()
artist.goto(0, -100)
artist.pendown()
artist.fillcolor("yellow")
artist.pencolor("#0D0230")
artist.pensize(2)
artist.begin_fill()
artist.circle(100)
artist.end_fill()

screen.exitonclick()
Rezultat
Żółto malowane koło bez żadnych detali twarzy
Etap 1 - Twarz: Malowane koło
smajlik_lico_kod.py
artist.fillcolor("yellow")
artist.pencolor("#0D0230")
artist.pensize(2)

artist.begin_fill()
artist.circle(100)
artist.end_fill()

Etap 2: oczy

smajlik_glaza.py
import turtle

screen = turtle.Screen()
screen.setup(width=340, height=340)
artist = turtle.Turtle()
artist.speed(0)

artist.penup()
artist.goto(0, -100)
artist.pendown()
artist.fillcolor("yellow")
artist.pencolor("#0D0230")
artist.pensize(2)
artist.begin_fill()
artist.circle(100)
artist.end_fill()

artist.penup()
artist.goto(-35, 35)
artist.pendown()
artist.dot(20, "black")
artist.penup()
artist.goto(35, 35)
artist.pendown()
artist.dot(20, "black")

screen.exitonclick()
Rezultat
Ten sam żółty kółko, teraz z dwoma czarnymi kropkami na oku na górze
Krok 2 – Dodaj oczy: Dwie kropki
smajlik_glaza_kod.py
artist.penup()
artist.goto(-35, 120)
artist.pendown()
artist.dot(20, "black")

artist.penup()
artist.goto(35, 120)
artist.pendown()
artist.dot(20, "black")

Krok 3: Uśmiechnij się i po wszystkim

smajlik_ulybka_kod.py
artist.penup()
artist.goto(-50, 60)
artist.setheading(-60)
artist.pendown()
artist.pensize(4)
artist.circle(60, 120)

artist.hideturtle()
smajlik.py
import turtle

screen = turtle.Screen()
screen.setup(width=340, height=340)
artist = turtle.Turtle()
artist.speed(0)

artist.penup()
artist.goto(0, -100)
artist.pendown()
artist.fillcolor("yellow")
artist.pencolor("#0D0230")
artist.pensize(2)
artist.begin_fill()
artist.circle(100)
artist.end_fill()

artist.penup()
artist.goto(-35, 35)
artist.pendown()
artist.dot(20, "black")
artist.penup()
artist.goto(35, 35)
artist.pendown()
artist.dot(20, "black")

artist.penup()
artist.goto(-45, -25)
artist.setheading(-60)
artist.pendown()
artist.pensize(4)
artist.circle(55, 120)

artist.hideturtle()

screen.exitonclick()
Rezultat
Żółty kółko z dwoma czarnymi kropkami – oczami i zakrzywionym uśmiechem z grubej linii
Efekt końcowy: żółta twarz, dwa oczy i łukowy uśmiech
Podstawowa praktyka
Inny nastrój

Zmień łuk uśmiechu na łuk zmarszczonych brwi – odwróć kierunek extent.

★★ Zadanie samodzielne
Kolorowy emotikon

Zmień fillcolor twarzy na dowolny inny kolor.

Challenge
Policzki

Dodaj dwa małe różowe dot() pod oczami, aby uzyskać różowe policzki.

Praktyka: Rysowanie uśmiechniętej buźki
Moduł turtle otwiera natywne okno Python – uruchamiane lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie
Otwórz praktykę →

Podsumowanie rozdziału

Czego nauczyliśmy się w tym rozdziale

  • Okno, płótno i świat współrzędnych — trzy różne rzeczy, które Turtle pozwala konfigurować osobno.
  • colormode(1.0) i colormode(255) to dwa sposoby nagrywania tego samego RGB-colora.
  • pencolor() koloruje kontur, fillcolor() — wypełnienie; color() ustawia oba naraz.
  • speed() wpływa tylko na animację, a nie na ostateczną geometrię; tracer(0) + update() przyspieszają złożone grafiki, rysując je jako partię.
  • circle() rysuje wpisany wielokąt — center znajduje się po lewej stronie żółwia, znak promienia określa kierunek, a steps steruje liczbą boków jawnie.
  • stamp() pozostawia odcisk formy bez ruchu i bez linii.
  • write() wyświetla tekst z konfigurowalnym align i font, zaczynając od bieżącej pozycji.
  • Wiele turtle.Turtle() obiektów żyje niezależnie na tym samym ekranie, każdy w swoim własnym stanie; clone() kopiuje stan początkowy, a następnie obiekty się rozchodzą.
  • clear(), reset() i home() usuwają i przesuwają różne kombinacje wzoru i pozycji.

co dalej

Turtle- grafika nie kończy się na tym na zawsze, ale wtedy trasa idzie nie tak nowe narzędzia językowe. W rozdziale 8 zaczniemy pracować z tekstem na poważnie—z łańcuch znakówe i słowa, które dotąd pojawiały się jedynie jako podpisy na ekranie.