概述
目录
自定义数据接口
程序编码
调试程序
刚欣赏完“燕山雪花大如席”没两天,铿锵玫瑰又上演了绝地逆袭的好戏。咱老百姓今儿个真高兴,寻思着也来点儿啥高精尖的,可翻遍箱底也没啥中意的,就请 Python 牛刀小试,展现一下自动轨迹绘制的风采吧。
基本要求:
- 自动化运行:程序和数据分开,调用数据自动运行
- 接口化设计:数据接口清晰明了
- 多维化组织:二维数据应用
自定义数据接口
据此,可以结合程序特性,实现自动轨迹绘制目的。
300,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库 及 坐标体系。
from 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原有基础上添加如下数据:
184,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,数据喊你玩儿自动轨迹绘制了所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复