Краткий ответ: здесь «градусы» — это углы дуг. Я вынес их в 5 переменных: глаза — 120°, губы — 100°, руки — 150°, ушки — 230°, ноги — 110°. Ниже полный код на Python Turtle.
Исходный код на фото не виден, поэтому это самостоятельная рабочая версия с такими же персонажами и кольцами.
import turtle
import math
# ===== МЕНЯЙ ЭТИ ПЯТЬ ЧИСЕЛ =====
EYE_ANGLE = 120 # глаза
LIPS_ANGLE = 100 # губы
ARM_ANGLE = 150 # руки
EAR_ANGLE = 230 # ушки
LEG_ANGLE = 110 # ноги
# ================================
screen = turtle.Screen()
screen.setup(620, 760)
screen.bgcolor("black")
screen.title("Олимпийский мишка")
screen.tracer(0)
t = turtle.Turtle()
t.hideturtle()
t.speed(0)
t.pensize(3)
t.color("white")
def move(x, y):
t.penup()
t.goto(x, y)
t.pendown()
def line(x1, y1, x2, y2):
move(x1, y1)
t.goto(x2, y2)
def arc(cx, cy, r, start, end):
"""Дуга окружности от start до end в градусах."""
steps = max(2, int(abs(end - start) * 1.5))
pts = []
for i in range(steps + 1):
a = math.radians(start + (end - start) * i / steps)
pts.append((cx + r * math.cos(a), cy + r * math.sin(a)))
move(pts[0][0], pts[0][1])
for x, y in pts[1:]:
t.goto(x, y)
def circle(cx, cy, r):
arc(cx, cy, r, 0, 360)
# тело и голова
circle(0, 0, 150)
circle(0, 235, 82)
# ушки
arc(-72, 296, 34, 30, 30 + EAR_ANGLE)
arc(72, 296, 34, 150, 150 - EAR_ANGLE)
# глаза
arc(-35, 242, 22, 20, 20 + EYE_ANGLE)
arc(35, 242, 22, 160 - EYE_ANGLE, 160)
# губы
half = LIPS_ANGLE / 2
arc(0, 205, 42, 270 - half, 270 + half)
# руки
arc(-155, -15, 50, 110, 110 + ARM_ANGLE)
arc(155, -15, 50, 70, 70 - ARM_ANGLE)
# ноги
arc(-55, -145, 48, 200, 200 + LEG_ANGLE)
arc(55, -145, 48, 340 - LEG_ANGLE, 340)
# пояс
for y in (-32, -20, -8):
line(-142, y, 142, y)
# олимпийские кольца
def ring(cx, cy, color):
t.color(color)
move(cx, cy - 12)
t.setheading(0)
t.circle(12)
ring(-32, -8, "blue")
ring(0, -8, "black")
ring(32, -8, "red")
ring(-16, -22, "yellow")
ring(16, -22, "green")
screen.update()
turtle.done()
Как понять: функция arc(cx, cy, r, start, end) рисует дугу окружности с центром (cx, cy). Угол дуги — это end - start. Поэтому если увеличить LIPS_ANGLE, улыбка станет шире; если уменьшить ARM_ANGLE, руки станут короче по дуге.
Проверка: запусти файл — должно открыться чёрное окно с мишкой, кольцами на поясе и отдельными дугами вместо рук, ног и ушек.
