Загрузка данных
# Подключаем все команды из библиотеки turtle
from turtle import *
# --- НАСТРОЙКА ЭКРАНА И ЧЕРЕПАШКИ ---
shape('turtle') # Устанавливаем курсор в виде черепашки
setup(450, 350) # Задаем размеры окна: ширина 450, высота 350
pensize(2) # Устанавливаем толщину линий в 2 пикселя
# --- ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ ---
# Функция перемещения черепашки в точку (x, y) без рисования линии
def p(x, y):
penup() # Поднимаем перо (не рисуем при движении)
setpos(x, y) # Перемещаемся в абсолютные координаты (x, y) с помощью setpos
pendown() # Опускаем перо (готовы рисовать)
seth(0) # Устанавливаем направление черепашки строго вправо (угол 0)
# Функция рисования прямоугольника по двум точкам (x1, y1) и (x2, y2)
def rect(x1, y1, x2, y2):
p(x1, y1) # Перемещаемся в первую точку (левый верхний угол)
d = abs(x2 - x1) # Вычисляем ширину прямоугольника (модуль разности X)
h = abs(y2 - y1) # Вычисляем высоту прямоугольника (модуль разности Y)
begin_fill() # Начинаем заливку фигуры
fd(d); rt(90) # Рисуем нижнюю сторону, поворачиваем направо
fd(h); rt(90) # Рисуем правую сторону, поворачиваем направо
fd(d); rt(90) # Рисуем верхнюю сторону, поворачиваем направо
fd(h) # Рисуем левую сторону
end_fill() # Заканчиваем заливку фигуры
# --- РИСОВАНИЕ БАБОЧКИ ---
# 1. ТУЛОВИЩЕ (рисуем с помощью функции rect)
color('black', 'black') # Цвет контура: черный, цвет заливки: черный
rect(-15, 60, 15, -60) # Рисуем прямоугольник от (-15, 60) до (15, -60)
# 2. ГОЛОВА (рисуем круг)
p(0, 60) # Перемещаемся в нижнюю точку головы (на верх туловища)
color('black', 'black') # Цвет контура и заливки: черный
begin_fill() # Начинаем заливку
circle(20) # Рисуем круг радиусом 20
end_fill() # Заканчиваем заливку
# 3. УСИКИ (рисуем линии)
# Левый усик
p(-8, 98) # Перемещаемся к основанию левого усика (верх головы)
pendown() # Опускаем перо для рисования линии
setpos(-35, 135) # Проводим линию в точку с координатами (-35, 135)
# Правый усик
p(8, 98) # Перемещаемся к основанию правого усика
pendown() # Опускаем перо
setpos(35, 135) # Проводим линию в точку с координатами (35, 135)
# 4. ВЕРХНИЕ КРЫЛЬЯ (большие круги)
# Левое верхнее крыло
p(-65, -15) # Смещаемся в нижнюю точку левого верхнего крыла
color('black', 'skyblue') # Контур черный, заливка голубая
begin_fill() # Начинаем заливку
circle(45) # Радиус круга 45
end_fill() # Заканчиваем заливку
# Правое верхнее крыло
p(65, -15) # Смещаемся в нижнюю точку правого верхнего крыла
color('black', 'skyblue') # Контур черный, заливка голубая
begin_fill() # Начинаем заливку
circle(45) # Радиус круга 45
end_fill() # Заканчиваем заливку
# 5. НИЖНИЕ КРЫЛЬЯ (маленькие круги)
# Левое нижнее крыло
p(-55, -80) # Смещаемся в нижнюю точку левого нижнего крыла
color('black', 'lightgreen') # Контур черный, заливка светло-зеленая
begin_fill() # Начинаем заливку
circle(35) # Радиус круга 35
end_fill() # Заканчиваем заливку
# Правое нижнее крыло
p(55, -80) # Смещаемся в нижнюю точку правого нижнего крыла
color('black', 'lightgreen') # Контур черный, заливка светло-зеленая
begin_fill() # Начинаем заливку
circle(35) # Радиус круга 35
end_fill() # Заканчиваем заливку
# --- ЗАВЕРШЕНИЕ РАБОТЫ ---
hideturtle() # Прячем курсор черепашки, чтобы он не портил рисунок
done() # Оставляем окно открытым после завершения рисования