Вопрос от Анонимного юзера 21 ноября 2025 11:40
From turtle import * penup() goto(-200, 0) pendown() goto(200, 0) penup() goto(0, -200) pendown() goto(0, 200) exitonclick() исправь код чтоб у коррдинатной были стрелки на концах
Ответ нейросети
21 ноября 2025 11:40
Классно! Чтобы у осей были стрелки на концах, добавим функцию, которая рисует треугольник-стрелку на конце линии, ориентированный вдоль направления линии. Затем применим её к обоим концам осей.
Что сделано:
- добавлена функция draw_arrowhead(x1, y1, x2, y2, head_length, head_angle_deg), которая рассчитывает направление линии, строит треугольник стрелки и заполняет его.
- после рисования осей вызываем эту функцию для обоих концов горизонтальной и вертикальной осей.
- код остаётся простым и понятным, подходит для школьной задачи.
Пример кода:
from turtle import * import math
def draw_arrowhead(x1, y1, x2, y2, head_length=20, head_angle_deg=30, color="black"): dx = x2 - x1 dy = y2 - y1 L = math.hypot(dx, dy) if L == 0: return ux, uy = dx / L, dy / L # единичный вектор вдоль линии nx, ny = -uy, ux # нормаль к линии
head_angle = math.radians(head_angle_deg)
head_width = head_length * math.tan(head_angle)
# две точки основания стрелки
base1 = (x2 - head_length * ux + head_width * nx,
y2 - head_length * uy + head_width * ny)
base2 = (x2 - head_length * ux - head_width * nx,
y2 - head_length * uy - head_width * ny)
penup()
goto(x2, y2)
pendown()
color(color)
fillcolor(color)
begin_fill()
goto(base1)
goto(base2)
goto(x2, y2)
end_fill()
def main(): speed(0) hideturtle()
# горизонтальная ось
penup()
goto(-200, 0)
pendown()
goto(200, 0)
# стрелки на концах горизонтальной оси
draw_arrowhead(-200, 0, 200, 0, head_length=20, head_angle_deg=25)
draw_arrowhead(200, 0, -200, 0, head_length=20, head_angle_deg=25)
# вертикальная ось
penup()
goto(0, -200)
pendown()
goto(0, 200)
# стрелки на концах вертикальной оси
draw_arrowhead(0, -200, 0, 200, head_length=20, head_angle_deg=25)
draw_arrowhead(0, 200, 0, -200, head_length=20, head_angle_deg=25)
exitonclick()
if name == "main": main()
Кратко как работает:
- оси рисуются обычными линиями от (-200,0) до (200,0) и от (0,-200) до (0,200).
- стрелки добавляются двумя вызовами draw_arrowhead: для каждого конца линии указывается начальная точка x1,y1 и конечная точка x2,y2, чтобы стрелка смотрела наружу от центра оси.
- параметры head_length и head_angle_deg можно подстроить под желаемый размер стрелки. Если нужно стрелок только на одном конце, оставь вызовы только для нужных концов.
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



