目录
自定义数据接口
程序编码
调试程序
刚欣赏完“燕山雪花大如席”没两天,铿锵玫瑰又上演了绝地逆袭的好戏。咱老百姓今儿个真高兴,寻思着也来点儿啥高精尖的,可翻遍箱底也没啥中意的,就请 Python 牛刀小试,展现一下自动轨迹绘制的风采吧。
基本要求:
- 自动化运行:程序和数据分开,调用数据自动运行
- 接口化设计:数据接口清晰明了
- 多维化组织:二维数据应用
自定义数据接口
据此,可以结合程序特性,实现自动轨迹绘制目的。
复制代码
1
2
3
4
5300,0,144,1,0,0 300,0,144,0,1,0 300,0,144,0,0,1 300,0,144,1,1,0 300,0,108,0,1,1
此处保存为文本文件 data.locus,姑且定义为逐行操作,第一个数字为行进距离,第二个为转向,第三个为相应角度,第四、五、六个为 RGB 通道颜色,取值 [0,1] 之间的浮点数。
数据接口自定义因人而异,实现目的就是合理的。
程序编码
既然绘制轨迹,就得小海龟大显身手了,相关知识见 turtle库 及 坐标体系。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27from turtle import * #设置绘图环境 title('自动轨迹绘制') setup(900,900) up() goto(-150,-50) down() seth(0) width(5) ht() #数据读取 f=open('data.locus') data=[] for line in f: data.append(list(map(eval,line.split(',')))) f.close() #自动绘制 for i in range(len(data)): pencolor(data[i][3],data[i][4],data[i][5]) fd(data[i][0]) if data[i][1]==1: rt(data[i][2]) else: lt(data[i][2])
调试程序
有了数据接口就可以通过调整数据而非程序,从而实现程序的低维护和高效率。例如在data.locus原有基础上添加如下数据:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25184,0,72,1,1,0 184,0,72,0,1,0 184,0,72,0,1,1 184,0,72,0,0,1 184,1,72,1,0,0 184,1,72,1,0,0 184,1,72,1,0,0 184,1,72,1,0,0 184,0,144,1,0,0 184,1,72,0,0,1 184,1,72,0,0,1 184,1,72,0,0,1 184,0,144,0,0,1 184,1,72,0,1,1 184,1,72,0,1,1 184,1,72,0,1,1 184,0,144,0,1,1 184,1,72,0,1,0 184,1,72,0,1,0 184,1,72,0,1,0 184,0,144,0,1,0 184,1,72,1,1,0 184,1,72,1,1,0 184,1,72,1,1,0 184,0,144,1,1,0
运行结果如下:
几点说明:
- 数据接口为文本文件,名称随意。
- map() 函数相关知识请参见Python map() 函数之举重若轻映射的魅力
https://blog.csdn.net/iprobobo/article/details/122798133
最后
以上就是失眠蜻蜓最近收集整理的关于Python,数据喊你玩儿自动轨迹绘制了的全部内容,更多相关Python内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复