import turtle
import random
screen = turtle.Screen()
X = 400
Y = 400
screen.setup(X, Y)
def drawKoch(ttl, length, generation):
if (generation == 0 ):
ttl.fd(generation)
return
else:
drawKoch(ttl, length - 1, generation / 3)
ttl.lt(60)
drawKoch(ttl, length - 1, generation / 3)
ttl.lt(120)
drawKoch(ttl, length - 1, generation / 3)
ttl.lt(60)
drawKoch(ttl, length - 1, generation / 3)
turtle.clearscreen()
screen.reset()
screen.screensize(X, Y)
ttl = turtle.Turtle()
ttl.speed(10)
ttl.penup()
ttl.setposition(-X/2 + 10, -Y/2 + 50)
ttl.pendown()
sides = 3
gens = 3
length = 300
angle = ((sides - 2) * 180) / sides
for i in range(sides):
drawKoch(ttl, length, gens)
ttl.left(180-angle)
我不知道为什么它不能画出科赫曲线。我不久前才开始学这门语言。我需要一些助手………希望你们知道的人能帮我
一堆问题:
你像
length - 1, generation / 3
一样递归,而它应该是length / 3, generation - 1
因此,
generation
应该是3,2,1,0(停止)而不是3,1.0,0.333,0.111,0.037,0.01234,0.00411,0.00137。。。它永远不会“等于”0,因此您的函数只会不断递归您使用的是
generation
而不是length
中的ttl.fd()
ttl.lt(120)
应该是ttl.rt(120)
相关问题 更多 >
编程相关推荐