自动轨迹绘制

需求
根据脚本来绘制图形
不是写代码而是写数据绘制轨迹
数据脚本是自动化的第一步
基本思路
①定义数据文件格式(接口)
非常具有个性色彩
②编写程序,根据文件接口解析参数绘制图形
③编制数据文件
方法思维
①自动化思维:数据和功能分离,数据驱动程序的自动运行
②接口化设计:格式化设计接口,清晰明了
③二维数据应用:应用维度组织数据,二维数据最常用
应用问题的扩展
①扩展设计接口,增加更多控制接口
②扩展功能设计,增加弧形等更多功能
③扩展应用需求,发展自动轨迹绘制到动画绘制
代码理解

#第一个元素表示前进距离,第二个为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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值