当我更改变量+如何避免临时变量时,Turtle不会改变

时间:2017-10-01 14:26:38

标签: python turtle-graphics

我在乌龟中创建了一个五角星形画螺旋,但是现在当我改变应该改变形状(点)的变量时,没有任何反应。我做错了什么?

它还通过x和y位置计算前进的距离。但由于初始pos为0,我创建了一个临时变量(x)来开始。有没有办法改善这个?

x = 20
point = 3
angle = 720/point
speed(0)
limit = 200

while abs(distance(0,0)) < limit:

    penup()
    forward(x)
    right(45)
    pendown()

    xpos = xcor()
    ypos = ycor()

    for i in range(point):
        forward(20)
        right(angle)

    d = math.sqrt(xpos**2 + ypos**2)
    x = d 

2 个答案:

答案 0 :(得分:1)

考虑到您使用了

from turtle import *
import math

作为您的导入

对于不断变化的形状 - 它有效。当您看不到差异时,只有两个时间段使用point=2point=4,因为它们会产生直线(720/2 = 360°和720/4 = 180°)

此外,您可以删除变量dxposypos,因为您只使用它们一次,以创建新的x值,然后可以写作x = math.sqrt(xcor()**2 + ycor()**2)

答案 1 :(得分:0)

我同意@ E.Aho对错误(+1)的评估,但建议您在角度计算中尝试使用360而不是720。它不会给你有趣的形状(五边形而不是五角星),但是对于point值为4或6,它应该更好:

import math
import turtle

x = 20
point = 4
angle = 360 / point
limit = 200

turtle.speed('fastest')

while turtle.distance(0, 0) < limit:

    turtle.penup()
    turtle.forward(x)
    turtle.right(45)
    turtle.pendown()

    for _ in range(point):
        turtle.forward(20)
        turtle.right(angle)

    xpos, ypos = turtle.position()

    x = math.sqrt(xpos ** 2 + ypos ** 2)

turtle.exitonclick()

enter image description here