我是靠谱客的博主 失眠蜻蜓,这篇文章主要介绍Python,数据喊你玩儿自动轨迹绘制了,现在分享给大家,希望可以做个参考。

目录

自定义数据接口

程序编码

调试程序


        刚欣赏完“燕山雪花大如席”没两天,铿锵玫瑰又上演了绝地逆袭的好戏。咱老百姓今儿个真高兴,寻思着也来点儿啥高精尖的,可翻遍箱底也没啥中意的,就请 Python 牛刀小试,展现一下自动轨迹绘制的风采吧。

        基本要求:

  • 自动化运行:程序和数据分开,调用数据自动运行
  • 接口化设计:数据接口清晰明了
  • 多维化组织:二维数据应用

 

自定义数据接口

        据此,可以结合程序特性,实现自动轨迹绘制目的。

复制代码
1
2
3
4
5
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库 及 坐标体系。

复制代码
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
27
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原有基础上添加如下数据:

复制代码
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
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

 

        运行结果如下:

几点说明:

  1. 数据接口为文本文件,名称随意。
  2. map() 函数相关知识请参见Python map() 函数之举重若轻映射的魅力https://blog.csdn.net/iprobobo/article/details/122798133

最后

以上就是失眠蜻蜓最近收集整理的关于Python,数据喊你玩儿自动轨迹绘制了的全部内容,更多相关Python内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部