Rozdział 7 · Głębokie zanurzenie w Turtle
colormode i kolory
Nazwa, kod HEX-code lub trójka RGB liczb to trzy sposoby na powiedzenie Turtle tego samego: „ten kolor”
Już ustaliliśmy kolory według nazwy — "purple",
"gold". Ale Turtle ma też sposób numeryczny — przez komponenty czerwonego, zielonego i niebieskiego (RGB).
Dwa tryby: 0.0-1.0 i 0-255
screen.colormode() określa, w jakim zakresie
zapisywane są liczby RGB:
| Mode | każdy zakres liczb | Przykład czerwieni |
|---|---|---|
colormode(1.0) (domyślnie) | 0.0 — 1.0 | (1.0, 0.0, 0.0) |
colormode(255) | 0 — 255 | (255, 0, 0) |
colormode_kod.py
screen.colormode(255)
artist.pencolor(255, 0, 0) # Czerwony, Składniki 0-255
screen.colormode(1.0)
artist.pencolor(1.0, 0, 0) # ten sam czerwony, komponenty 0.0-1.0
Liczby poza zakresem są błędem
Jeśli zostanie zainstalowany
colormode(1.0), a przekażesz to dalej (255, 0, 0) – Turtle nie zrozumie, co miałeś na myśli z czerwonym: 255 to poza zakresem 0,0-1,0 i pojawi się błąd. Reżim i liczebność muszą się zgadzać.RGB- – cała paleta
rgb_svatchi.py
import turtle
screen = turtle.Screen()
screen.setup(width=460, height=200)
screen.colormode(255)
artist = turtle.Turtle()
artist.hideturtle()
artist.penup()
swatches = [
((255, 0, 0), "red"),
((0, 200, 0), "green"),
((0, 0, 255), "blue"),
((255, 210, 0), "yellow"),
]
x = -170
for color, label in swatches:
artist.goto(x, 0)
artist.fillcolor(color)
artist.pencolor("#0D0230")
artist.pendown()
artist.begin_fill()
for _ in range(4):
artist.forward(70)
artist.left(90)
artist.end_fill()
artist.penup()
artist.goto(x, -25)
artist.write(label, font=("Arial", 12, "normal"))
x += 110
screen.exitonclick()
Rezultat
rgb_svatchi_kod.py
screen.colormode(255)
artist.fillcolor(255, 0, 0) # czerwony
artist.fillcolor(0, 200, 0) # zielony
artist.fillcolor(0, 0, 255) # niebieski
artist.fillcolor(255, 210, 0) #yellow
Trzy sposoby na ustawienie tego samego koloru
| Metoda | Przykład | wtedy, gdy jest to wygodne |
|---|---|---|
| Nazwa | "red" | szybki, jak na standardowe kolory |
| HEX-kod | "#FF0000" | dokładny odcień, jak w CSS/ projekcie |
| RGB- krotka | (255, 0, 0) | gdy kolor jest obliczany w kodzie (na przykład losowo) |
Nie zagłębiając się w teorię kolorów
To wystarczy do ćwiczenia tego rozdziału. To, jak RGB jest ułożone „pod maską”
Praktyka: colormode i RGB
Moduł turtle otwiera natywne okno Python – uruchamiane lokalnie w VS Code, PyCharm lub Jupyter