Палитра и заливка в черепашьей графике

Раздел: Библиотеки -> Turtle графика

Основные методы задания цветов

Наиболее часто используемый способ задания цвета в модуле turtle - это указание имени цвета в виде строки (например, "red", "blue") или передача кортежа из трёх целых чисел (красный, зелёный, синий) в диапазоне от 0 до 255. Для работы с последним вариантом необходимо предварительно установить цветовую модель через turtle.colormode(255).

import turtle
turtle.colormode(255)
turtle.pencolor((255, 0, 0))   # красный

Python turtle screen (работа с экраном в модуле turtle python)

Этот подход подходит для точного указания оттенков, когда нужно повторить цвет из графического редактора. Строковые имена удобны для быстрого прототипирования - turtle поддерживает около 140 стандартных названий (например, "light salmon").

Как задать цвет через шестнадцатеричный код?

Вместо строкового имени или кортежа можно использовать hex-строку, например "#FFA500" (оранжевый). Для этого также требуется colormode(255).

turtle.pencolor("#FFA500")

Python turtle codes (коды для turtle в python)

Цель: использование цветов, скопированных из веб-палитры или CSS.

Типичная ошибка: пропуск символа # или неверное количество символов. Turtle выдаст исключение turtle.TurtleGraphicsError.

Как задать цвет в диапазоне от 0 до 1?

Можно переключиться на модель, где компоненты RGB принимают значения от 0.0 до 1.0. Для этого вызывают turtle.colormode(1.0) (или 1).

turtle.colormode(1.0)
turtle.pencolor(0.5, 0.0, 0.5)   # фиолетовый

Turtle python goto (команда goto в модуле turtle python)

Цель: математически вычислять цвета, например, при создании градиентов на основе тригонометрических функций.

Проблема: если забыть установить colormode, кортеж из целых чисел (0..255) будет интерпретирован как дробный, и цвета станут искажёнными (например, (255,0,0) превратится в почти белый).

Как получить случайный цвет для рисования?

Используйте модуль random для генерации случайного кортежа RGB. Предварительно установите colormode(255).

import random
random_color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
turtle.pencolor(random_color)

графика turtle python (рисование с помощью модуля turtle в python)

Цель: создание разноцветных узоров, тестирование визуализации.

Ошибка: если генерировать только один канал (например, только красный), цвета будут лишь оттенками красного.

Как изменить цвет фона окна?

Фоновый цвет холста задаётся через turtle.bgcolor(). Принимает те же форматы, что и pencolor.

turtle.bgcolor("black")
# или
import turtle
turtle.Screen().bgcolor("#333333")

Цель: контрастный фон для светлых линий или имитация ночного режима.

Проблема: если фон устанавливается после рисования, уже нарисованные элементы останутся без изменений. Лучше устанавливать фон в начале скрипта.

- Python turtle colors (цвета в модуле turtle python)
- Turtle library python (основы работы с turtle)

Продвинутые примеры с цветами

Ниже приведены развёрнутые примеры, демонстрирующие использование цветов в различных сценариях.

Пример 1. Радуга с плавным переходом цветов

Пошагово рисуем дуги, меняя цвет через HSV преобразование. Цветовая модель HSV переводится в RGB с помощью модуля colorsys.

Пример
import turtle
import colorsys

turtle.speed(0)
turtle.colormode(1.0)
turtle.pensize(20)

for i in range(36):
    h = i / 36.0
    r, g, b = colorsys.hsv_to_rgb(h, 1.0, 1.0)
    turtle.pencolor(r, g, b)
    turtle.circle(100, 10)  # рисуем дугу на 10 градусов

turtle.hideturtle()
turtle.done()
Результат: круг из 36 дуг разных цветов, образующий радужное кольцо.

Пример 2. Случайный залитый квадрат

Рисуем квадрат, заполненный случайным цветом. Используем turtle.begin_fill() и end_fill().

Пример
import turtle
import random

turtle.speed(1)
turtle.colormode(255)

for _ in range(5):
    x = random.randint(-200, 200)
    y = random.randint(-200, 200)
    turtle.penup()
    turtle.goto(x, y)
    turtle.pendown()
    
    r, g, b = random.randint(0,255), random.randint(0,255), random.randint(0,255)
    turtle.fillcolor((r,g,b))
    turtle.begin_fill()
    for _ in range(4):
        turtle.forward(50)
        turtle.left(90)
    turtle.end_fill()

turtle.done()
Результат: пять квадратов в случайных местах, каждый залит случайным цветом.

Пример 3. Градиентная линия

При перемещении черепашки по прямой цвет плавно меняется от красного к синему. Используем интерполяцию.

Пример
import turtle

turtle.speed(0)
turtle.colormode(255)

start_r, start_g, start_b = 255, 0, 0
end_r, end_g, end_b = 0, 0, 255
steps = 100

for i in range(steps + 1):
    factor = i / steps
    r = int(start_r * (1 - factor) + end_r * factor)
    g = int(start_g * (1 - factor) + end_g * factor)
    b = int(start_b * (1 - factor) + end_b * factor)
    turtle.pencolor(r, g, b)
    turtle.forward(5)

turtle.done()
Результат: линия длиной 505 пикселей, цвет которой плавно переходит из красного в синий.

Пример 4. Цветная спираль

Спираль, у которой с каждым витком увеличивается зелёная составляющая.

Пример
import turtle

turtle.speed(0)
turtle.colormode(255)

green = 0
for i in range(200):
    turtle.pencolor(255, green, 0)
    turtle.forward(i)
    turtle.left(91)
    if green < 255:
        green += 1

turtle.done()
Результат: спираль, начинающаяся красной, затем переходящая в жёлтую (из-за увеличения зелёного).

Цвета в модуле turtle Python - comments

En
Python turtle colors (python)