意外看到 Python 的turtle海龟绘图模块,就是这绘制一个在Blender里面会者的费马螺旋,效果还不错,方便快捷。
错误的费马螺旋
效果展示
代码
"""这是一个绘制螺旋图形的代码"""# Startfrom turtle import*counts = 250Cond = 1x = 1speed(30)dot(5,"black")dotdiam = 5while(Cond < counts ):startradius = 1angle = 137.5radius = startradius * xif Cond < 100:dotdiam = dotdiam + 0.2else:dotdiam = dotdiam - 0.1penup()circle(radius,angle)pendown()dot(dotdiam,"black")Cond = Cond + 1x = x + 1
正确的画法
规律
如果假设N为点的序号,那么原点就是第0个点,N=0接下来偏移的第1个点为N=1,假设第一个偏移的半径是R
from turtle import*
counts = 250 Cond = 1 dotdiam = 20
speed(30) dot(dotdiam,”black”)
while(Cond < counts ):
startradius = 20angle = 137.5radius = (Cond ** 0.5) * startradiusif Cond < 100:dotdiam = dotdiamelse:dotdiam = dotdiampenup()circle(radius,angle)pendown()dot(dotdiam,"black")Cond = Cond + 1
<a name="pAnsA"></a># 其他练习```python#### 这是一个绘制回字形方格图形的代码 #####from turtle import *l = int (input ("请输入初始方框边长:")) #让用户输入初始方框的边长couts = int(input("请输入绘制的圈数:")) #让用户输入绘制的圈数,也是程序运行时未画的圈数ex = int(input("请输入递增间距:")) #让用户输入两个方框之间的间距speed(10)color("red")while (couts != 0): #当剩余圈数不是0时,进入循环绘制tl = l / 2 #以中心(0,0)作为方框的中心,那么取一半作为方框点的坐标if couts != 0: #当剩余圈数不是0时,进入ture条件分支pu() #抬起笔尖goto(-tl,tl) #移动到第一个点pd() #落下笔刷,准备绘制goto(tl,tl) #绘制到第二个点goto(tl,-tl) #绘制到第三个点goto(-tl,-tl) #绘制到第四个点goto(-tl,tl) #绘制到第一个点,闭合方框couts = couts - 1 #减去1圈,得到剩余圈数l = l + ex *2 #计算下一圈的边长continue #循环继续else :break #绘制完毕,跳出循环mainloop() #绘制结束,不自动退出Python Turtle窗口
