展开全部
代码2113如5261下4102:1653
import sys, math, time
import turtle
count = 0
def moveto(x,y):
turtle.penup()
turtle.goto(x,y)
turtle.pendown()
def hilbert(x0, y0, xi, xk, yi, yk, n):
if n <= 0:
X = x0 + (xi + yi)/2
Y = y0 + (xk + yk)/2
X2 = X * 600 -300
Y2 = Y * 600 -300
global count
if count < 1:
count = count + 1
moveto(X2,Y2)
turtle.color(X,Y,X*Y)
turtle.goto(X2,Y2)
else:
hilbert(x0, y0, yi/2, yk/2, xi/2, xk/2, n - 1)
hilbert(x0 + xi/2, y0 + xk/2, xi/2, xk/2, yi/2, yk/2, n - 1)
hilbert(x0 + xi/2 + yi/2, y0 + xk/2 + yk/2, xi/2, xk/2, yi/2, yk/2, n - 1)
hilbert(x0 + xi/2 + yi, y0 + xk/2 + yk, -yi/2,-yk/2,-xi/2,-xk/2, n - 1)
def main():
turtle.colormode(1.)
turtle.speed(0)
for depth in range(9):
if 7 > depth > 4: # for faster rendering.
turtle.getscreen().tracer(0)
global count
count = 0
hilbert(0.0, 0.0, 1.0, 0.0, 0.0, 1.0, depth)
turtle.getscreen().tracer(1)
time.sleep(2)
turtle.Screen().exitonclick()
if __name__ == "__main__":
main()
更多追问追答
追问
你这个没法画啊,就是运行不了。求助
追答
我在python2.7完美运行呀,windows下。。发个附件给你吧。。
追问
不好意思,我弄错了,再问一下你这个能不能改成根据用户的输入n然后就化成n阶啊
追答
给你代码了,先把他读懂,至于转化成n阶不是只要改一下参数为就可以了,至于哪个参数,先把代码读懂了。要学会自我发现问题和解决问题
已赞过
已踩过<
你对这个回答的评价是?
评论
收起