正方形螺旋线的绘制python代码(什么是正方形螺旋线)

http://www.itjxue.com  2023-03-05 05:38  来源:未知  点击次数: 

如何用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°。这样就画出一个漂亮的螺旋线。

上面的程序中,如果我们将每次绘制旋转的角度改变一下会绘制出什么图形呢?

(责任编辑:IT教学网)

更多

推荐浏览器文章