Rozdział 7 · Głębokie zanurzenie w Turtle
Mini-projekt – koło wewnątrz kwadratu
Najpierw wynik, planuj później, krok po kroku – naucz się świadomie budować kompozycję postaci, a nie metodą wyboru.
Co zbudujemy
okruzhnost_v_kvadrate.py
import turtle
screen = turtle.Screen()
screen.setup(width=340, height=340)
artist = turtle.Turtle()
artist.pensize(3)
razmer = 150
artist.pencolor("#5B24F9")
artist.penup()
artist.goto(-razmer / 2, -razmer / 2)
artist.pendown()
for _ in range(4):
artist.forward(razmer)
artist.left(90)
artist.pencolor("#DB2777")
artist.penup()
artist.goto(0, -razmer / 2)
artist.setheading(0)
artist.pendown()
artist.circle(razmer / 2)
screen.exitonclick()
Rezultat
Rozłóżmy na części
Zanim napiszesz kod, podzielmy rysunek na proste kształty: kwadrat z bokiem
razmeroraz okrąg o promieniu razmer / 2,
wyryte dokładnie na środku.
Plan współrzędnych
Aby okrąg idealnie pasował do kwadratu, musisz zacząć rysować go od punktu na Do połowy dolnej strony kwadratu, nie od narożnika i nie od środka:
| Co rysować | Od czego zacząć | Kurs na początek |
|---|---|---|
| Square | lewym dolnym rogu: (-razmer/2, -razmer/2) | 0° (prawa) |
| Obwód | środku dolnej strony: (0, -razmer/2) | 0° (prawa) |
Krok 1: Tylko kwadrat
kvadrat_plan.py
import turtle
screen = turtle.Screen()
screen.setup(width=340, height=340)
artist = turtle.Turtle()
artist.pensize(3)
artist.pencolor("#5B24F9")
razmer = 150
artist.penup()
artist.goto(-razmer / 2, -razmer / 2)
artist.pendown()
for _ in range(4):
artist.forward(razmer)
artist.left(90)
screen.exitonclick()
Rezultat
kvadrat_plan_kod.py
razmer = 150
artist.penup()
artist.goto(-razmer / 2, -razmer / 2)
artist.pendown()
for _ in range(4):
artist.forward(razmer)
artist.left(90)
Krok 2: Dodaj koło z inskrypcją
okruzhnost_v_kvadrate_kod.py
artist.pencolor("#DB2777")
artist.penup()
artist.goto(0, -razmer / 2)
artist.setheading(0)
artist.pendown()
artist.circle(razmer / 2)
Skąd wzięła się ta kropka
Promień wpisanego okręgu — dokładnie połowa boku kwadratu. A środek okręgu znajduje się po lewej stronie żółwia (patrz rozdział „Geometria okręgu”) — więc aby środek pokrywał się ze środkiem kwadratu, żółw musi zacząć rysować DOKŁADNIE z punktu na dolnej krawędzi, w odległości radius od środka.
Challenge
koncentricheskie.py
import turtle
screen = turtle.Screen()
screen.setup(width=340, height=340)
artist = turtle.Turtle()
artist.pensize(3)
razmer = 150
artist.pencolor("#5B24F9")
artist.penup()
artist.goto(-razmer / 2, -razmer / 2)
artist.pendown()
for _ in range(4):
artist.forward(razmer)
artist.left(90)
colors = ["#DB2777", "#059669", "#D97706"]
for i, color in enumerate(colors):
radius = razmer / 2 - i * 20
artist.pencolor(color)
artist.penup()
artist.goto(0, -radius)
artist.setheading(0)
artist.pendown()
artist.circle(radius)
screen.exitonclick()
Rezultat
★★ Zadanie samodzielne
Własny zestaw pierścionków
Zmień kod, aby uzyskać własny zestaw koncentrycznych okręgów — inne promienie, inne kolory.
★★ Zadanie samodzielne
Krąg w Heksagonie
Zamień kwadrat na sześciokąt z rozdziału 6 i wpisz w niego okrąg o odpowiednim promieniu.
Challenge
Gruby kontur
Zwiększ pensize() kwadratu i koła – jak zmienia się postrzeganie figury?
Praktyka: Koło z inskrypcją
Moduł turtle otwiera natywne okno Python – uruchamiane lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie