【问题标题】:Turtle graphics setpos() does nothing海龟图形 setpos() 什么都不做
【发布时间】:2022-01-24 10:47:41
【问题描述】:

由于某种原因,我的代码一直运行到第 67 行(粗体文本)。光标应该在 y 轴上向下移动 100 像素,但它会停留在那里并在第二个深蓝色的框上绘制框。有谁知道这是为什么。帮助将不胜感激。我还是 Python 新手。

def drawbox():
    for x in range (4):
        avo.color('white', 'blue')
        avo.begin_fill()

        for x in range(2):
            avo.forward(400)
            avo.right(90)
            avo.forward(100)
            avo.right(90)
        avo.end_fill()

        avo.penup()
        avo.setpos(0,-100)
        avo.pendown()

        avo.color('white', 'darkblue')
        avo.begin_fill()
        for x in range(2):
            avo.forward(400)
            avo.right(90)
            avo.forward(100)
            avo.right(90)
        avo.end_fill()

        avo.penup()
        **avo.setpos(0,-100)**
        avo.pendown()
        continue


    turtle.done()


drawbox()

【问题讨论】:

    标签: python turtle-graphics


    【解决方案1】:

    问题是setpos() 工作在绝对 位置,而你想移动到相对 到你现在所在的位置。通过这样做:

    avo.setpos(0,-100)
    

    您总是回到屏幕上的同一个位置。尝试将您的两个 setpos() 调用更改为:

    avo.sety(avo.ycor() - 100)
    

    或者,更好的是,稍微重新设计您的程序,使海龟指向正确的方向,然后在每个框后向前移动 100 像素:

    from turtle import Screen, Turtle
    
    def drawboxes():
        turtle.setheading(270)
    
        for _ in range(2):
            for fill_color in ('blue', 'darkblue'):
                turtle.fillcolor(fill_color)
                turtle.begin_fill()
    
                for _ in range(2):
                    turtle.forward(100)
                    turtle.left(90)
                    turtle.forward(400)
                    turtle.left(90)
    
                turtle.end_fill()
    
                turtle.penup()
                turtle.forward(100)
                turtle.pendown()
    
    screen = Screen()
    
    turtle = Turtle()
    turtle.pencolor('white')
    
    drawboxes()
    
    screen.exitonclick()
    

    【讨论】:

    • 非常感谢!这如我所愿。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-30
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 2016-01-05
    • 1970-01-01
    相关资源
    最近更新 更多