Коротко: точные цифры я подставить не могу — в задании нет твоего исходного кода (в нём свои имена переменных и координаты). Но принцип замены углов везде один, и по нему ты сам поменяешь любую часть: глаза, губы, руки, ушки, ноги.
Как в такой программе «работает градус»
Почти всегда это Python + turtle. Там есть всего две вещи, которые задают угол:
- Направление пера —
t.setheading(a)(илиt.seth(a)), а такжеt.left(x)/t.right(x). Отсчёт: \(0°\) — вправо, \(90°\) — вверх, \(180°\) — влево, \(270°\) — вниз. Поворот на \(+\) идёт против часовой стрелки. - Дуга —
t.circle(R, extent): радиус \(R\) и размахextentв градусах. Если \(R<0\) илиextent<0 — дуга рисуется в другую сторону (так делают «прищуренные» веки и улыбку).
Что менять в каждой части
| Часть | Что означает «градус» | Как менять |
|---|---|---|
| Глаза | наклон века + сила прищура | setheading(EYE_TILT) перед дугой; extent — насколько глаз «закрыт» |
| Губы | растянутость улыбки | extent дуги: больше градусов — шире улыбка |
| Ушки | куда «торчит» ухо | setheading(EAR) перед дугой уха |
| Руки | направление руки от тела | setheading(ARM) — угол наклона руки |
| Ноги | направление ноги вниз | setheading(LEG) — обычно \(240°\)–\(300°\) |
Главное правило симметрии: правая часть — это зеркало левой, а зеркало относительно вертикальной оси считается так:
\[\text{угол}_{\text{прав}} = 180° - \text{угол}_{\text{лев}}\]Поэтому не задавай правую руку отдельным числом «на глаз» — считай её из левой, и фигура не перекосится.
Готовый каркас — вставь свои координаты
import turtle as t
# ===== ПАРАМЕТРЫ: меняем только цифры здесь =====
EYE_TILT = 25 # наклон века (0 - горизонтально, больше - сильнее прищур)
EYE_SWEEP = 40 # длина дуги века в градусах
LIP_SWEEP = 50 # растянутость улыбки
EAR_LEFT = 120 # направление левого уха
ARM_LEFT = 160 # направление левой руки
LEG_LEFT = 250 # направление левой ноги
EAR_RIGHT = 180 - EAR_LEFT
ARM_RIGHT = 180 - ARM_LEFT
LEG_RIGHT = 180 - LEG_LEFT
def arc(x, y, heading, r, sweep):
"""Дуга-деталь: ставим перо в точку и рисуем кусок окружности."""
t.penup(); t.goto(x, y); t.setheading(heading); t.pendown()
t.circle(r, sweep)
# пример: два уха
arc(-40, 300, EAR_LEFT, 40, 120)
arc( 40, 300, EAR_RIGHT, 40, 120)
# пример: две руки
arc(-130, 60, ARM_LEFT, 35, 100)
arc( 130, 60, ARM_RIGHT, 35, 100)
# пример: две лапы
arc(-60, -100, LEG_LEFT, 40, 90)
arc( 60, -100, LEG_RIGHT, 40, 90)
t.done()
Если в твоём коде вместо setheading стоят повороты t.left(...) / t.right(...) — принцип тот же: меняй число в повороте, а у парной детали ставь зеркальное значение.
Проверка результата
- Фигура симметрична: левая и правая детали — зеркальные копии.
- Сумма углов пары: \(\text{лев} + \text{прав} = 180°\).
- Глаза и глаза, уши и уши нарисованы одинаковыми числами (общий параметр), иначе будет «подмигивающий» медведь.
- Меняешь одно число — запускаешь и смотришь, что сдвинулось; так проще всего понять, за что оно отвечает.
Пришли текст своей программы (или скрин кода) — подставлю в него конкретные числа под твой рисунок и пришлю готовый код целиком.