Python,数据喊你玩儿自动轨迹绘制了

导读:本篇文章讲解 Python,数据喊你玩儿自动轨迹绘制了,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

自定义数据接口

程序编码

调试程序


        刚欣赏完“燕山雪花大如席”没两天,铿锵玫瑰又上演了绝地逆袭的好戏。咱老百姓今儿个真高兴,寻思着也来点儿啥高精尖的,可翻遍箱底也没啥中意的,就请 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])

 

调试程序

Python,数据喊你玩儿自动轨迹绘制了

 

        有了数据接口就可以通过调整数据而非程序,从而实现程序的低维护和高效率。例如在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

 

        运行结果如下:

Python,数据喊你玩儿自动轨迹绘制了

几点说明:

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/106958.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!