我有分形曲线的问题。我在Python2.7和OSXElCapitan上的3.6上都试过这个。我不能让乌龟动。这是直接从书中摘取的代码。screenshot of turtle not moving设置为0时,根据书中的描述,它应该画一条直线。但它不动。这本书给了我们密码:
from turtle import Turtle
def cCurve(t, x1, y1, x2, y2, level):
def drawLine(x1, y1, x2, y2):
t.up()
t.goto(x1, y1)
t.down()
t.goto(x2, y2)
if level == 0:
drawLine(x1, y1, x2, y2)
else:
xm = (x1 + x2 + y1 - y2) //2
ym = (x2 + y1 + y2 - x1) //2
cCurve(t, x1 ,y1 ,xm, ym, level -1)
cCurve(t, xm, ym, x2, y2, level -1)
def main():
level = int(input("Enter the level(0 or greater):" ))
t = Turtle()
t.hideturtle()
cCurve(t, 50, -50, 50, 50, level)
main()
在讨论了@trincot指出的缩进问题之后,我想证明,在编写这样的程序时,人们和书籍常常会忽略turtle的
Vec2D
类的价值。尽管Vec2D
不是完美的,缺乏一种很好的方法来访问invidual元素并且没有除法,因此您必须使用multipliaion,它可以通过处理点而不是单个的X和Y值来清理代码:你可以把
Vec2D
导入那些与海龟没有任何关系的程序。你知道吗相关问题 更多 >
编程相关推荐