python学习笔记第七章自动绘制图形

自动绘制图形:
需求:根据脚本来绘制图形,而不是写代码,是写数据来及进行绘制轨迹。
思路:
1、定义数据文件的格式
2、编写程序,根据文件解析参数绘制图形
3、编制数据文件

定义格式为自行定义,即数据的顺序,每个数据的作用。在这里我们定义如下:
第一个数据:行进距离
第二个数据:转向判断,0:左转,1:右转
第三个数据:转向角度
第四五六个数据:RGB的数值,为在0—1之间的浮点数
1、首先是初始的定义:

import turtle as tt
tt.title('自动轨迹绘制')
tt.setup(800,600,0,0)
tt.pencolor("yellow")
tt.pensize(5)

2、接下来开始读取数据:

#数据的读取:
detail=[]
f=open("自动轨迹绘制.txt")
for line in f:
    line=line.replace("\n","")
    detail.append(list(map(eval,line.split(","))))
f.close()

这里我们利用line.split(“,”)指定”,”为分隔符将字符串分割为若干个字符串,可以生成一个列表。map函数为python的内嵌函数,功能为将第一个参数的功能作用于第二个参数的每一个元素,即对列表中的每一个字符串取评估函数,再将整个结果输出为列表类型,加到我们预先定义的detail列表中。

3、进行自动绘制

#自动绘制
for i in range(len(detail)):
    tt.pencolor(detail[i][3],detail[i][4],detail[i][5])
    tt.fd(detail[i][0])
    if detail[i][1]:
        tt.right(detail[i][2])
    else:
        tt.left(detail[i][2])

即把利用每个参数来绘制图形。

完整代码:

#自动轨迹绘制
import turtle as tt
tt.title('自动轨迹绘制')
tt.setup(800,600,0,0)
tt.pencolor("yellow")
tt.pensize(5)
#数据的读取:
detail=[]
f=open("自动轨迹绘制.txt")
for line in f:
    line=line.replace("\n","")
    detail.append(list(map(eval,line.split(","))))
f.close()
#自动绘制
for i in range(len(detail)):
    tt.pencolor(detail[i][3],detail[i][4],detail[i][5])
    tt.fd(detail[i][0])
    if detail[i][1]:
        tt.right(detail[i][2])
    else:
        tt.left(detail[i][2])

运行的结果如下:
(第一组数据为课程原本代码,修改了颜色,第二三组数据为自行更改)
第一组数据:

在这里插入图片描述
第一组结果:
在这里插入图片描述
第二组数据:
在这里插入图片描述
第二组结果:
在这里插入图片描述
第三组数据:
在这里插入图片描述
第三组结果:
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值