夜光带你走进python开发 (三十四)传奇语言

夜光序言:

他踉跄前行时,

 

    清风,

 

    请你温柔一点。

 

    帮他吹开繁乱思绪,陪在他的身边。

他回天乏力时,

 

    霞光,

 

    请你温柔一点。

 

    安抚一个孤独的灵魂,鼓励他在放弃之前,试着再笑一遍。

如果真的尘埃落定,

 

    那么长夜,

 

    请你温柔一点。

 

    施舍他一寸土地,让他能够平静合眼,然后安然长眠。

 

正文:

#根据数据文件在窗口中动态路径绘制
import turtle 
 
def main():
    #设置窗口信息
    turtle.title('数据驱动的动态路径绘制')
    turtle.setup(800, 600, 0, 0)
    #设置画笔
    pen = turtle.Turtle()
    pen.color("red")
    pen.width(5)
    pen.shape("turtle")
    pen.speed(5)
    #读取文件
    result=[]
    file = open("data.txt","r")
    for line in file:
        result.append(list(map(float, line.split(','))))
    print(result)
    #动态绘制
    for i in range(len(result)):
        pen.color((result[i][3],result[i][4],result[i][5]))
        pen.forward(result[i][0])
        if result[i][1]:
            pen.rt(result[i][2])
        else:
            pen.lt(result[i][2])
    pen.goto(0,0)
 
 
if __name__ == '__main__':
    main()

编写程序根据文件data.txt中的数据, 使用turtle库来动态绘制图形路径

前进300个像素
0:向左转
1:向右转
转动多少角度
颜色:r,g,b

该问题的IPO模式可以描述为:


输入:数据文件
处理:读取数据文件,并根据数据内容和
 要求绘制路径。
输出:构建窗口,并输出图形


程序实现的具体过程为:


(1)使用import命令为程序引入turtle库
(2)设置窗口信息和Turtle画笔:

import turtle

turtle.title('数据驱动的动态路径绘制')

turtle.setup(800, 600, 0, 0)
pen = turtle.Turtle()
pen.color("red")
pen.width(5)
pen.shape("turtle")
pen.speed(80000000)


result = []

(3) 读取数据文件到列表result中。

#夜光:读取文件txt
file = open("data.txt", "r")
for line in file:
    result.append(list(map(float, line.split(','))))
print(result)

(4) 根据每一条数据记录进行绘制。

for i in range(len(result)):
    pen.color((result[i][3], result[i][4], result[i][5]))
    pen.forward(result[i][0])
    if result[i][1]:
        pen.rt(result[i][2])
    else:
        pen.lt(result[i][2])


(5) 画笔回到原点

 

import turtle

turtle.title('数据驱动的动态路径绘制')

turtle.setup(800, 600, 0, 0)
pen = turtle.Turtle()
pen.color("red")
pen.width(5)
pen.shape("turtle")
pen.speed(80000000)


result = []

#夜光:读取文件txt
file = open("data.txt", "r")
for line in file:
    result.append(list(map(float, line.split(','))))
print(result)

for i in range(len(result)):
    pen.color((result[i][3], result[i][4], result[i][5]))
    pen.forward(result[i][0])
    if result[i][1]:
        pen.rt(result[i][2])
    else:
        pen.lt(result[i][2])

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值