Python Turtle 绘制五星红旗代码优化
代码中有一些错误:
-
t.flllcolor(color)应该是t.fillcolor(color)。 -
t.bgpic('./bg.gif')和t.bgpic('./red_bg.gif')应该在setup()函数中设置,而不是在star()函数中。 -
star()函数中的最后两行代码应该在main函数中,而不是在star()函数中。
下面是修改后的代码:
import turtle as t
import random
import time
# 画笔
t.pensize(1)
t.delay(1)
t.hideturtle()
# 画布大小
t.setup(800, 800)
t.bgpic('./red_bg.gif')
def star(x, y, left_angle, edge_len, color='yellow'):
t.pencolor(color)
t.fillcolor(color)
# 速度 0最快 10最慢
t.speed(0)
t.penup()
t.goto(x, y)
t.pendown()
# 填充图形
t.begin_fill()
t.left(left_angle)
for _ in range(5):
t.forward(edge_len)
t.right(144)
t.end_fill() # 完成
t.left(-left_angle)
def main():
# 绘制背景星星
for _ in range(200):
rand_x = random.randint(-400, 400)
rand_y = random.randint(0, 400)
edge_len = random.randint(3, 8)
left_angle = random.randint(0, 180)
star(rand_x, rand_y, edge_len, left_angle, '#B7C5D2')
# 绘制五星红旗
star(-360, 320, 0, 80)
star(-260, 350, 40, 18)
star(-235, 330, 20, 18)
star(-235, 295, 0, 18)
star(-260, 270, -10, 18)
# 停留
t.done()
if __name__ == '__main__':
main()
原文地址: https://www.cveoy.top/t/topic/mNBB 著作权归作者所有。请勿转载和采集!