Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3761753
А
Аноним
6 дней назад · публичный вопрос
А
Аноним

Сделай на пайтан

Нейросеть6 дней назад

Готовый вариант на Python с модулем turtle: фигура собирается из окружностей, полуокружностей и овалов.

import turtle
import math

screen = turtle.Screen()
screen.setup(800, 800)
screen.title("Панда из окружностей")
screen.bgcolor("white")
screen.tracer(0)

t = turtle.Turtle()
t.hideturtle()
t.speed(0)
t.pensize(3)
t.color("black")


def circle_at(x, y, r, fill=None):
    """Окружность с центром (x, y) и радиусом r."""
    t.penup()
    t.goto(x, y - r)
    t.setheading(0)
    t.pendown()

    if fill is None:
        t.circle(r)
    else:
        t.fillcolor(fill)
        t.begin_fill()
        t.circle(r)
        t.end_fill()

    t.penup()


def ellipse_at(cx, cy, rx, ry):
    """Овал с центром (cx, cy)."""
    t.penup()
    for i in range(361):
        a = math.radians(i)
        x = cx + rx * math.cos(a)
        y = cy + ry * math.sin(a)

        if i == 0:
            t.goto(x, y)
            t.pendown()
        else:
            t.goto(x, y)

    t.penup()


def arc(cx, cy, rx, ry, a1, a2, steps=120):
    """Дуга овала от угла a1 до a2."""
    t.penup()

    for i in range(steps + 1):
        a = math.radians(a1 + (a2 - a1) * i / steps)
        x = cx + rx * math.cos(a)
        y = cy + ry * math.sin(a)

        if i == 0:
            t.goto(x, y)
            t.pendown()
        else:
            t.goto(x, y)

    t.penup()


def line(x1, y1, x2, y2):
    t.penup()
    t.goto(x1, y1)
    t.pendown()
    t.goto(x2, y2)
    t.penup()


# Руки и ноги
circle_at(-125, -35, 30)
circle_at(125, -35, 30)

ellipse_at(-58, -168, 43, 48)
ellipse_at(58, -168, 43, 48)

# Туловище
ellipse_at(0, -55, 105, 115)

# Три полоски на животе
arc(0, -20, 95, 8, 180, 360)
arc(0, -40, 100, 8, 180, 360)
arc(0, -60, 103, 8, 180, 360)

# Цветок из пяти окружностей
for i in range(5):
    a = math.radians(90 + i * 72)
    x = 15 * math.cos(a)
    y = -45 + 15 * math.sin(a)
    circle_at(x, y, 17)

# Уши
circle_at(-64, 225, 40)
circle_at(64, 225, 40)

# Голова
circle_at(0, 145, 85)

# Глаза
for ex in (-33, 33):
    circle_at(ex, 173, 22, fill="white")
    circle_at(ex * 0.8, 169, 8, fill="black")

# Улыбка: нижняя половина окружности
t.penup()
t.goto(-48, 125)
t.setheading(-90)
t.pendown()
t.circle(48, 180)   # 180° — ровно половина окружности
t.penup()

# Верхняя линия рта
line(-48, 125, 48, 125)

screen.update()
screen.exitonclick()

Как это работает

  • t.circle(r) рисует окружность. Важно: черепашка начинает не из центра, а с нижней точки окружности. Поэтому в circle_at() сначала выполняется переход в точку (x, y - r), и только потом рисуется круг — так его центр оказывается в (x, y).
  • t.penup() и t.goto() переносят черепашку без линии.
  • t.setheading(-90) направляет черепашку вниз. После этого t.circle(48, 180) рисует нижнюю половину окружности — получается улыбка.
  • Овалы — это растянутые окружности: для них отдельно задаются радиус по x и по y.
  • Симметрия держится за счёт противоположных координат: уши ±64, глаза ±33, руки ±125.

Проверка

Сохрани код как panda.py и запусти:

python panda.py

Должно открыться окно с пандой. Нажми на окно, чтобы закрыть его. Если какая-то деталь съехала, меняй её координаты x, y — остальная фигура не сломается.

сделай на пайтан
Готовый вариант на Python с модулем `turtle`: фигура собирается из окружностей, полуокружностей и овалов. ```python import turtle import math screen = turtle.Screen() screen.setup(800, 800) screen.title("Панда из окружностей") screen.bgcolor("white") screen.tracer(0) t = turtle.Turtle() t.hideturtle() t.speed(0) t.pensize(3) t.color("black") def circle_at(x, y, r, fill=None): """Окружность с центром (x, y) и радиусом r.""" t.penup() t.goto(x, y - r) t.setheading(0) t.pendown() if fill is None: t.circle(r) else: t.fillcolor(fill) t.begin_fill() t.circle(r) t.end_fill() t.penup() def ellipse_at(cx, cy, rx, ry): """Овал с центром (cx, cy).""" t.penup() for i in range(361): a = math.radians(i) x = cx + rx * math.cos(a) y = cy + ry * math.sin(a) if i == 0: t.goto(x, y) t.pendown() else: t.goto(x, y) t.penup() def arc(cx, cy, rx, ry, a1, a2, steps=120): """Дуга овала от угла a1 до a2.""" t.penup() for i in range(steps + 1): a = math.radians(a1 + (a2 - a1) * i / steps) x = cx + rx * math.cos(a) y = cy + ry * math.sin(a) if i == 0: t.goto(x, y) t.pendown() else: t.goto(x, y) t.penup() def line(x1, y1, x2, y2): t.penup() t.goto(x1, y1) t.pendown() t.goto(x2, y2) t.penup() # Руки и ноги circle_at(-125, -35, 30) circle_at(125, -35, 30) ellipse_at(-58, -168, 43, 48) ellipse_at(58, -168, 43, 48) # Туловище ellipse_at(0, -55, 105, 115) # Три полоски на животе arc(0, -20, 95, 8, 180, 360) arc(0, -40, 100, 8, 180, 360) arc(0, -60, 103, 8, 180, 360) # Цветок из пяти окружностей for i in range(5): a = math.radians(90 + i * 72) x = 15 * math.cos(a) y = -45 + 15 * math.sin(a) circle_at(x, y, 17) # Уши circle_at(-64, 225, 40) circle_at(64, 225, 40) # Голова circle_at(0, 145, 85) # Глаза for ex in (-33, 33): circle_at(ex, 173, 22, fill="white") circle_at(ex * 0.8, 169, 8, fill="black") # Улыбка: нижняя половина окружности t.penup() t.goto(-48, 125) t.setheading(-90) t.pendown() t.circle(48, 180) # 180° — ровно половина окружности t.penup() # Верхняя линия рта line(-48, 125, 48, 125) screen.update() screen.exitonclick() ``` ### Как это работает - `t.circle(r)` рисует окружность. Важно: черепашка начинает не из центра, а с нижней точки окружности. Поэтому в `circle_at()` сначала выполняется переход в точку `(x, y - r)`, и только потом рисуется круг — так его центр оказывается в `(x, y)`. - `t.penup()` и `t.goto()` переносят черепашку без линии. - `t.setheading(-90)` направляет черепашку вниз. После этого `t.circle(48, 180)` рисует нижнюю половину окружности — получается улыбка. - Овалы — это растянутые окружности: для них отдельно задаются радиус по `x` и по `y`. - Симметрия держится за счёт противоположных координат: уши `±64`, глаза `±33`, руки `±125`. ### Проверка Сохрани код как `panda.py` и запусти: ```bash python panda.py ``` Должно открыться окно с пандой. Нажми на окно, чтобы закрыть его. Если какая-то деталь съехала, меняй её координаты `x, y` — остальная фигура не сломается.