1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python画螺旋_如何用python turtle画斐波那契螺旋曲线?

python画螺旋_如何用python turtle画斐波那契螺旋曲线?

时间:2024-02-06 15:19:23

相关推荐

python画螺旋_如何用python turtle画斐波那契螺旋曲线?

展开全部

我把矩形和圆弧都用不同颜色填充了,你62616964757a686964616fe58685e5aeb931333431353237按照自己的需求修改一下吧,你的题目说的不清楚。#Python3.6

#使用turtle绘制Fibonacci螺旋

defdraw_fibonacci(x):

#F0=1

#F1=1

#Fn=F(n-1)+F(n-2)

#产生斐波那契数列,用于查表

#像这种计算复杂性指数增长的计算,不要写个函数去每次求一个数

#最好的办法是,按照规律写出查找表,用查找的方法来得到数据

f_list=[]

foriinrange(x):

ifi==0:

f_list.append(1)

elifi==1:

f_list.append(1)

else:

f_list.append(f_list[i-1]+f_list[i-2])

#像素比例

f0=50

#设置画笔属性

turtle.pensize(5)

turtle.pencolor("black")

turtle.penup()

turtle.home()

turtle.pendown()

foriinrange(0,len(f_list)):

#绘制速度,1~10个不同速度等级,小于1或者大于10立即绘制

turtle.speed(1)

turtle.pendown()

#绘制矩形

ifi==0:

fill_color="black"

else:

fill_color=(random.random(),random.random(),random.random())

turtle.fillcolor(fill_color)

turtle.begin_fill()

turtle.forward(f_list[i]*f0)

turtle.left(90)

turtle.forward(f_list[i]*f0)

turtle.left(90)

turtle.forward(f_list[i]*f0)

turtle.left(90)

turtle.forward(f_list[i]*f0)

turtle.left(90)

turtle.end_fill()

#绘制圆弧

fill_color=(random.random(),random.random(),random.random())

turtle.fillcolor(fill_color)

ifi==0:

turtle.forward(f_list[i]*f0/2)

turtle.begin_fill()

turtle.circle(f_list[i]*f0/2,360)

turtle.end_fill()

#移动到一下起点

turtle.forward(f_list[i]*f0/2)

continue

else:

turtle.begin_fill()

turtle.circle(f_list[i]*f0,90)

turtle.left(90)

turtle.forward(f_list[i]*f0)

turtle.left(90)

turtle.forward(f_list[i]*f0)

turtle.end_fill()

#移动到一下起点

turtle.speed(0)

turtle.penup()

turtle.left(90)

turtle.forward(f_list[i]*f0)

turtle.left(90)

turtle.forward(f_list[i]*f0)

turtle.done()

if__name__=="__main__":

draw_fibonacci(6)

下面是我跑出来的结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。