Наконечники стрел черепахи питона не смотрят в правильном направлении - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь нарисовать стрелу, используя черепашку Python.Но когда он достигает головы стрелки, я получаю курс черепахи и добавляю 45 градусов, чтобы нарисовать половину стрелки, затем возвращаюсь в то же положение, чтобы нарисовать другую часть.Я установил правильный угол, но затем все пошло не так:

Инициализация

StartPointX=0
StartPointY=0
MaxX=100
MaxY=100

Рисование линии стрелки

Brush.goto(StartPointX,StartPointY)
Brush.goto(MaxX,MaxY)

Рисование наконечника стрелки

Brush.left(45)
Brush.backward(20)
Brush.forward(20)
Brush.right(90)
Brush.backward(20)

Выходное изображение:

Output Image Here

1 Ответ

0 голосов
/ 11 июня 2019

Проблема в том, что вы игнорируете заголовок черепахи. При использовании goto() заголовок черепахи не изменяется. Когда вы пишете left(45), остается 45 градусов относительно чего? Слева от текущего заголовка, который не был установлен:

from turtle import Screen, Turtle

StartPointX = 0
StartPointY = 0
MaxX = 100
MaxY = 100

screen = Screen()
brush = Turtle()

# Drawing The arrow line

brush.penup()
brush.goto(StartPointX, StartPointY)
brush.pendown()

brush.setheading(brush.towards(MaxX, MaxY))
brush.goto(MaxX, MaxY)

# Drawing arrow head

brush.left(45)
brush.backward(20)
brush.forward(20)
brush.right(90)
brush.backward(20)

brush.hideturtle()
screen.exitonclick()

Еще один способ подойти к этому:

MaxX = 100
MaxY = 100

# ...

brush.setheading(brush.towards(MaxX, MaxY))
brush.goto(MaxX, MaxY)

Должен контролировать заголовок и использовать forward() вместо goto():

Distance = 140

# ...

brush.setheading(45)
brush.forward(Distance)
...