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

概述

目录

自定义数据接口

程序编码

调试程序


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

 

        运行结果如下:

几点说明:

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

最后

以上就是失眠蜻蜓为你收集整理的Python,数据喊你玩儿自动轨迹绘制了的全部内容,希望文章能够帮你解决Python,数据喊你玩儿自动轨迹绘制了所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部