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