3.编写代码, 根据文件中的数据,使用turtle库来动态绘制图形路径

img


编写代码, 根据文件中的数据,使用turtle库来动态绘制图形路径。文件每行六个元素的含义:元素1:路径前进像素数;元素2:转动方向,0为左,1为右:元素3:转动角度;元素4-6:绘制颜色的rgb值。第一条数据解读:绘制路径前进300个像素,向左转144度,路径线段的颜色为红色。阐释修改文件中的数据,绘制不同图形。

import turtle
 
t = turtle.Turtle()

with open('data.txt','r') as f:
    data = f.read()
data = [list(map(int,i.split(','))) for i in data.split('\n')]

t.pensize(3)
t.speed(8)

for i in data:
    t.color([i[3],i[4],i[5]])
    t.forward(i[0])
    if i[1]==0:
        t.left(i[2])
    else:
        t.right(i[2])

t.hideturtle()
turtle.done()

img

data.txt
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
184,0, 72,1,0,1
184,0, 72,0,0,0
184,0, 72,0,0,0
184,0, 72,0,0,0
184,0, 72,0,0,0


import turtle


li=[
'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',
 '184.0.72.1.0.1',
 '184.0.72.0.0.0',
 '184.0.72.0.0.0',]


def paint(args):
    #解析参数
    #分别是距离,方向,角度,颜色
    distance, direction, angle, *rgbcolor = [int(i) for i in args.split('.')]
    turtle.pencolor(rgbcolor)
    turtle.fd(distance)
    if direction:
        turtle.right(angle)
    else:
        turtle.left(angle)
    
    
for i in li:
    paint(i)
turtle.done()