我在乌龟中创建了一个五角星形画螺旋,但是现在当我改变应该改变形状(点)的变量时,没有任何反应。我做错了什么?
它还通过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
答案 0 :(得分:1)
考虑到您使用了
from turtle import *
import math
作为您的导入
对于不断变化的形状 - 它有效。当您看不到差异时,只有两个时间段使用point=2
和point=4
,因为它们会产生直线(720/2 = 360°和720/4 = 180°)
此外,您可以删除变量d
,xpos
和ypos
,因为您只使用它们一次,以创建新的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()