需求
根据脚本来绘制图形
不是写代码而是写数据绘制轨迹
数据脚本是自动化的第一步
基本思路
①定义数据文件格式(接口)
非常具有个性色彩
②编写程序,根据文件接口解析参数绘制图形
③编制数据文件
方法思维
①自动化思维:数据和功能分离,数据驱动程序的自动运行
②接口化设计:格式化设计接口,清晰明了
③二维数据应用:应用维度组织数据,二维数据最常用
应用问题的扩展
①扩展设计接口,增加更多控制接口
②扩展功能设计,增加弧形等更多功能
③扩展应用需求,发展自动轨迹绘制到动画绘制
代码理解
#第一个元素表示前进距离,第二个为0则左转,为1右转,第三个为转向角度,最后三个为RGB值
#AutoTraceDraw.py
#生成绘画环境,赋予初值
import turtle as t
t.title('自动轨迹绘制')
t.setup(800,600,0,0)
t.pencolor("red")
t.pensize(5)
#打开数据文件,解析文件的每一行,并对这一行的信息做相关的处理
#数据读取,将接口文件的信息读入到内部的列表变量中,列表变量的每一个元素是一行的信息,也是一个小的列表(二维列表)
datals=[] #建立空列表读取文件信息
f=open("data.txt")
for line in f:
line=line.replace("\n","") #将文件最后的换行符换为空字符串,line存储的是接口信息
datals.append(list(map(eval,line.split(",")))) #对接口信息分割、提取
f.close()
#line.split()以逗号分隔字符串为单个字符,并生成一个列表
#map()是内置函数,无需引用,将第一个参数的功能作用于第二个参数的每一个元素,即第一个参数为函数,第二个参数为迭代类型
#eval()将字符串两侧的引号去掉
#自动绘制
for i in range(len(datals)):
t.pencolor(datals[i][3],datals[i][4],datals[i][5]) #获取列表中一个元素的第3、4、5个参数(RGB值)
t.fd(datals[i][0]) #获取一个元素的第一个参数,表示行进距离
if datals[i][1]: #第一个元素是1则右转
t.right(datals[i][2])
else: #第一个元素是0则左转
t.left(datals[i][2])
t.done()