创建一个绘制圆圈的乌龟

时间:2016-04-28 02:02:16

标签: python

我需要编写一个程序来绘制一个圆形图案,这些图形会移向窗口顶部并变小。例如,图案以最大的圆圈开始,然后通过收缩值减小半径,直到半径变得非常小(如5 px)。

我对最小值的要求已经完成,但要完全完成它我需要请求X和Y位置,并请求半径和缩小值。有人对此有所了解吗?

不妨添加,这是我的第二个代码版本。第一个版本上升了。它需要上升。这个下降了。我不知道它有什么问题。

import turtle

turtle.penup()

for i in range(1, 500, 10):
    turtle.right(90)        # Face South
    turtle.forward(2 * i)   # Move two radiuses down
    turtle.right(270)       # Back to start heading
    turtle.pendown()        # Put the pen back down
    turtle.circle(i)        # Draw a circle
    turtle.penup()

1 个答案:

答案 0 :(得分:0)

你的乌龟走的路是错误的,因为你正在使用turtle.forward。请改用turtle.backward

此外,不要使用for x in range(1, 500, 10),而是使用for x in reversed(range(1, 500, 10)),以便半径减小而不是增加。

最后,对于"请求"价值观,你的意思是打印出来吗?如果是,则半径为i,缩小值为range(start, stop, step)的第三个值,并且可以使用turtle.position()找到X和Y值,这将返回Vector2D(实质上是一个元组) (X, Y)

以下是您的代码的修改版本:

import turtle

turtle.penup()
turtle.sety(-400)

for i in reversed(range(1, 90, 10)):
    print("Radius: {radius}".format(radius=i))
    print("X: {0}, Y: {1}".format(*turtle.position()))
    print("Shrink value: 10")
    turtle.pendown()        # Put the pen back down
    turtle.circle(i)        # Draw a circle
    turtle.penup()
    turtle.right(90)        # Face South
    turtle.backward(2 * i)   # Move two radiuses down
    turtle.right(270)       # Back to start heading