正方形螺旋线的绘制python代码(什么是正方形螺旋线)
如何用python turtle画斐波那契螺旋曲线?
我把矩形和圆弧都用不同颜色填充了,你按照自己的需求修改一下吧,你的题目说的不清楚。
#?Python3.6
#?使用turtle绘制Fibonacci螺旋
def?draw_fibonacci(x):
????#?F0=1
????#?F1=1
????#?Fn=F(n-1)+F(n-2)
????#?产生斐波那契数列,用于查表
????#?像这种计算复杂性指数增长的计算,不要写个函数去每次求一个数
????#?最好的办法是,按照规律写出查找表,用查找的方法来得到数据
????f_list?=?[]
????for?i?in?range(x):
????????if?i?==?0:
????????????f_list.append(1)
????????elif?i?==?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()
????for?i?in?range(0,?len(f_list)):
????????#?绘制速度,1~10个不同速度等级,小于1或者大于10立即绘制
????????turtle.speed(1)
????????turtle.pendown()
????????#?绘制矩形
????????if?i?==?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)
????????if?i?==?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)
下面是我跑出来的结果:
如何采用Python语言绘制一个螺旋线
打开直接的IDLE软件,也就是Python语言shell的界面。 单击“file”-“new file”新建立一个脚本。 保存文件,在脚本界面中,选中“file”-“save”,就会出现保存的配置界面; 配置文件名并且单击“保存”就可以啦
python-第八课-伟大的循环之漂亮的螺旋线
本节课通过绘制复杂的螺旋线来深入学习for循环和range()函数的用法。深入了解循环的程序过程。
(1)for循环的用法
(2)range()函数的用法
(3)绘制螺旋线
(1)import
(2)turtle.Pen()
(3)forward()
(4)right()
(5)for循环
(6)range()
(3)执行t.forward(x)语句让海龟画笔向前移动x步。由于x=0,所以画笔向前移动0步。
(4)执行t.right(72)语句,让海龟画笔向右转动72°。
(5)执行第二次循环,for循环访问range列表中的第二个元素1,并将1存储在变量x中,变量x的值变为1.接着画笔向前移动1步,画笔向右转动72°。
(6)执行第三次循环,for循环访问range列表中的第三个元素2,并将2存储在变量x中,变量x的值变为2,接着画笔向前移动2步,画笔向右转动72°。
(7)这样一次一次地继续执行,当for循环遍历range中最后一个元素99时,变量x的值就为99,画笔向前移动99步,并向右转动72°。这样就画出一个漂亮的螺旋线。
上面的程序中,如果我们将每次绘制旋转的角度改变一下会绘制出什么图形呢?