根据设计图,利用turtle模块写出代码,功能是画出该旗帜。
这是因为turtle.bgpic(r’./1.gif’) 中的图片必须是.gif格式,而其他的jpg等格式都不行。
你或许会直接将图片后缀改成.gif,但是你会发现还是报错。
是因为GIF图片仅通过改后缀名是不会改变图片格式的,需要通过格式转换工具。
网上有许多在线转换网站,例如转换工具
转换成功之后就可以成功运行了。
我可以根据已有的五星红旗代码,结合旗帜的设计图来优化turtle模块画旗帜的代码。我会遵循以下步骤:
import turtle
turtle.setup(600, 400)
turtle.bgcolor('red')
def draw_rect():
turtle.penup()
turtle.goto(-100, 60)
turtle.pendown()
turtle.begin_fill()
for i in range(2):
turtle.forward(200)
turtle.right(90)
turtle.forward(120)
turtle.right(90)
turtle.end_fill()
draw_rect()
def draw_star(x, y, size):
turtle.penup()
turtle.goto(x, y)
turtle.setheading(0)
turtle.fd(size)
turtle.pendown()
turtle.right(162)
turtle.begin_fill()
for i in range(5):
turtle.forward(size)
turtle.right(144)
turtle.end_fill()
draw_star(-60, 20, 48)
draw_star(10, 35, 28)
draw_star(80, 25, 38)
draw_star(-45, -15, 28)
draw_star(45, -10, 28)
turtle.hideturtle()
turtle.done()
完整代码如下:
import turtle
def draw_rect():
turtle.penup()
turtle.goto(-100, 60)
turtle.pendown()
turtle.begin_fill()
for i in range(2):
turtle.forward(200)
turtle.right(90)
turtle.forward(120)
turtle.right(90)
turtle.end_fill()
def draw_star(x, y, size):
turtle.penup()
turtle.goto(x, y)
turtle.setheading(0)
turtle.fd(size)
turtle.pendown()
turtle.right(162)
turtle.begin_fill()
for i in range(5):
turtle.forward(size)
turtle.right(144)
turtle.end_fill()
turtle.setup(600, 400)
turtle.bgcolor('red')
draw_rect()
draw_star(-60, 20, 48)
draw_star(10, 35, 28)
draw_star(80, 25, 38)
draw_star(-45, -15, 28)
draw_star(45, -10, 28)
turtle.hideturtle()
turtle.done()
运行代码后,将会得到优化后的旗帜设计图。