Python画动态升国旗+国歌歌词

以下是程序的代码,由turtle绘画:

import turtle as t
import time

t.bgcolor("#a1e5ff")
t.title("升旗")
t.setup(width=1.0, height=1.0)
# 设置三个画笔,t1画国旗,t2画歌词,t3画太阳
t1 = t.Turtle()
t2 = t.Turtle()
t3 = t.Turtle()
t1.hideturtle()
t2.hideturtle()
t3.hideturtle()
t1.pensize(1)
t1.speed(0)
t2.pensize(1)
t2.speed(0)
t3.pensize(1)
t3.speed(0)

# 一格长 100/3,宽 100/3
def flag_main(x, y, longth, width, scale):
    t1.setheading(0)
    t1.pencolor("#dd290f")
    t1.penup()
    t1.goto(x * scale, y * scale)
    t1.pendown()
    t1.begin_fill()
    t1.fillcolor("#dd290f")
    for i in range(2):
        t1.fd(longth * scale)
        t1.left(90)
        t1.fd(width * scale)
        t1.left(90)
    t1.penup()
    t1.end_fill()
    t1.setheading(0)

# 大五角星中心坐标(-1000/3,210)
def flag_bigstar(x, y, length, scale):
    t1.setheading(0)
    t1.pencolor("#ffdf00")
    t1.penup()
    t1.goto(x * scale, y * scale)
    t1.pendown()
    t1.begin_fill()
    t1.fillcolor("#ffdf00")
    for i in range(4):
        t1.fd(length * scale)
        t1.right(144)
    t1.penup()
    t1.end_fill()
    t1.setheading(0)

def flag_smallstar(x, y, length, an, scale):
    t1.goto(-1000/3 * scale, 210 * scale)
    t1.setheading(an)
    t1.pencolor("#ffdf00")
    t1.penup()
    t1.goto(x * scale, y * scale)
    t1.pendown()
    t1.begin_fill()
    t1.fillcolor("#ffdf00")
    for i in range(4):
        t1.fd(length * scale)
        t1.right(144)
    t1.penup()
    t1.end_fill()
    t1.setheading(0)


def draw_flag(x, y, scale):
    flag_main(x, y, 1000, 2000/3, scale)
    # 画大五角星,传入 scale 参数缩放
    flag_bigstar(x + 600/3 * scale, y + 3300/3 * scale, 200 * scale, scale)
    # 画小五角星
    # 第一颗
    flag_smallstar(x + 1400/3 * scale, y + 3500/3 * scale, 200/3 * scale, 47, scale)
    # 第二颗
    flag_smallstar(x + 1720/3 * scale, y + 3400/3 * scale, 200/3 * scale, -45, scale)
    # 第三颗
    flag_smallstar(x + 1670/3 * scale, y + 3000/3 * scale, 200/3 * scale, 0, scale)
    # 第四颗
    flag_smallstar(x + 1400/3 * scale, y + 2730/3 * scale, 200/3 * scale, 47, scale)
def song():#画歌曲歌词
  rylics =["起来!","不愿做奴隶的人们!","把我们的血肉,\n筑成我们新的长城!","中华民族到了\n最危险的时候,","每个人被迫着\n发出最后的吼声。","起来!(X1)","起来!(X2)","起来!(X3)","我们万众一心,\n冒着敌人的炮火,","前进!","冒着敌人的炮火,","前进!(X1)","前进!(X2)","前进!进!(X3)"]
  t2.penup()
  t2.goto(-750,-100)
  t2.pendown()
  t2.pencolor("red")
  for i in range(len(rylics)):
    t2.write(rylics[i],font=("楷体", 50, "normal"))
    time.sleep(2)
    t2.clear()
  t2.penup()

def stick():#画旗杆
  t1.pendown()
  t1.color("#b0b6d0")
  t1.setheading(90)
  t1.penup()
  t1.setx(-190)
  t1.pendown()
  t1.sety(-t.window_height()/2)
  t1.fd(t.window_height())

def flag_up():#升国旗
  t1.pensize(1)
  for i in range(-1400,200, 5):
     t1.clear()
     t.tracer(0)
     t1.pensize(20)
     stick()
     t1.pensize(1)
     draw_flag(-400,i, 0.5)
     time.sleep(0.01)
     t.update()

def sun():#画太阳
  t3.penup()
  t3.goto(-700,100)
  t3.pendown()
  t3.begin_fill()
  t3.fillcolor("red")
  t3.circle(200)
  t3.end_fill()
  t3.begin_fill()
  t3.pencolor("#f5ab29")
  t3.pensize(20)
  t3.circle(202)
  t3.pensize(1)
  t3.end_fill()
  t3.penup()

#主程序
t.tracer(0)
sun()
draw_flag(-400, -1350, 0.5)
t.tracer(1)
t2.penup()
t2.goto(-750,-100)
t2.pendown()
t2.pencolor("red")
t2.write("即将播放国歌...",font=("华文行楷", 45, "normal"))
t1.pensize(20)
stick()
t1.pensize(1)
flag_up()
t2.clear()
song()
t2.penup()
t2.goto(-750,-100)
t2.pendown()
t2.pencolor("red")
t2.write("升旗完毕!解散!",font=("华文行楷", 45, "normal"))

# 保持窗口不关闭
t.mainloop()

接下来是运行图片:

下面是演示视频:

python画升国旗带歌词 演示视频

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值