Robin703 2021-12-27 02:28 采纳率: 100%
浏览 632
已结题

python生日祝福

两天后朋友过生日了,想用程序送她一个惊喜,想用python程序画一个生日蛋糕(蛋糕有蜡烛),蜡烛上面写“happy birthday!”,蛋糕下面写“Peggy”,然后带背景音乐(用pygame添加),谢谢了!真的很想知道怎么弄。

  • 写回答

2条回答 默认 最新

  • bingbingyihao 2021-12-27 08:59
    关注

    回答:这边给出大佬“egospace”的文章:https://blog.csdn.net/qq_35540187/article/details/107440222?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164056436316780261971672%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164056436316780261971672&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~top_positive~default-1-107440222.nonecase&utm_term=%E7%94%9F%E6%97%A5%E8%9B%8B%E7%B3%95python&spm=1018.2226.3001.4450

    代码如下:画的有点慢(得有8--10分钟,另外音乐文件得自己修改,名字不是太符合“

    img

    import turtle as t
    import math as m
    import random as r
    import pygame
    
    
    # 音乐的路径        记得修改,这里给生日快乐音乐文件路径
    file=r'D:\aa.mp3'
    # 初始化
    #pygame.mixer.init()
    # 加载音乐文件
    #track = pygame.mixer.music.load(file)
    # 开始播放音乐流                由于我电脑音频坏了,就注释了,到时候记得删掉
    #pygame.mixer.music.play()
    
    
    def drawX(a, i):
        angle = m.radians(i)
        return a * m.cos(angle)
    
    
    def drawY(b, i):
        angle = m.radians(i)
        return b * m.sin(angle)
    
    
    # 设置背景颜色,窗口位置以及大小
    t.bgcolor("#d3dae8")
    t.setup(1000, 800)
    t.penup()
    t.goto(150, 0)
    t.pendown()
    # 1
    t.pencolor("white")
    t.begin_fill()
    for i in range(360):
        x = drawX(150, i)
        y = drawY(60, i)
        t.goto(x, y)
    t.fillcolor("#fef5f7")
    t.end_fill()
    # 2
    t.begin_fill()
    for i in range(180):
        x = drawX(150, -i)
        y = drawY(70, -i)
        t.goto(x, y)
    for i in range(180, 360):
        x = drawX(150, i)
        y = drawY(60, i)
        t.goto(x, y)
    t.fillcolor("#f2d7dd")
    t.end_fill()
    # 3
    t.pu()
    t.goto(120, 0)
    t.pd()
    t.begin_fill()
    for i in range(360):
        x = drawX(120, i)
        y = drawY(48, i)
        t.goto(x, y)
    t.fillcolor("#cbd9f9")
    t.end_fill()
    # 4
    t.begin_fill()
    t.pencolor("#fee48c")
    for i in range(540):
        x = drawX(120, i)
        y = drawY(48, i) + 70
        t.goto(x, y)
    t.goto(-120, 0)
    t.fillcolor("#cbd9f9")
    t.end_fill()
    # 5
    t.pu()
    t.goto(120, 70)
    t.pd()
    t.pencolor("#fff0f3")
    t.begin_fill()
    for i in range(360):
        x = drawX(120, i)
        y = drawY(48, i) + 70
        t.goto(x, y)
    t.fillcolor("#fff0f3")
    t.end_fill()
    # 6
    t.pu()
    t.goto(110, 70)
    t.pd()
    t.pencolor("#fff9fb")
    t.begin_fill()
    for i in range(360):
        x = drawX(110, i)
        y = drawY(44, i) + 70
        t.goto(x, y)
    t.fillcolor("#fff9fb")
    t.end_fill()
    # 7
    t.pu()
    t.goto(120, 0)
    t.pd()
    t.begin_fill()
    t.pencolor("#ffa79d")
    for i in range(180):
        x = drawX(120, -i)
        y = drawY(48, -i) + 10
        t.goto(x, y)
    t.goto(-120, 0)
    for i in range(180, 360):
        x = drawX(120, i)
        y = drawY(48, i)
        t.goto(x, y)
    t.fillcolor("#ffa79d")
    t.end_fill()
    # 8
    t.pu()
    t.goto(120, 70)
    t.pd()
    t.begin_fill()
    t.pensize(4)
    t.pencolor("#fff0f3")
    for i in range(1800):
        x = drawX(120, 0.1 * i)
        y = drawY(-18, i) + 10
        t.goto(x, y)
    t.goto(-120, 70)
    t.pensize(1)
    for i in range(180, 360):
        x = drawX(120, i)
        y = drawY(48, i) + 70
        t.goto(x, y)
    t.fillcolor("#fff0f3")
    t.end_fill()
    # 9
    t.pu()
    t.goto(80, 70)
    t.pd()
    t.begin_fill()
    t.pencolor("#6f3732")
    t.goto(80, 120)
    for i in range(180):
        x = drawX(80, i)
        y = drawY(32, i) + 120
        t.goto(x, y)
    t.goto(-80, 70)
    for i in range(180, 360):
        x = drawX(80, i)
        y = drawY(32, i) + 70
        t.goto(x, y)
    t.fillcolor("#6f3732")
    t.end_fill()
    # 10
    t.pu()
    t.goto(80, 120)
    t.pd()
    t.pencolor("#ffaaa0")
    t.begin_fill()
    for i in range(360):
        x = drawX(80, i)
        y = drawY(32, i) + 120
        t.goto(x, y)
    t.fillcolor("#ffaaa0")
    t.end_fill()
    # 11
    t.pu()
    t.goto(70, 120)
    t.pd()
    t.pencolor("#ffc3be")
    t.begin_fill()
    for i in range(360):
        x = drawX(70, i)
        y = drawY(28, i) + 120
        t.goto(x, y)
    t.fillcolor("#ffc3be")
    t.end_fill()
    # 12
    t.pu()
    t.goto(80, 120)
    t.pd()
    t.begin_fill()
    t.pensize(3)
    t.pencolor("#ffaaa0")
    for i in range(1800):
        x = drawX(80, 0.1 * i)
        y = drawY(-12, i) + 80
        t.goto(x, y)
    t.goto(-80, 120)
    t.pensize(1)
    for i in range(180, 360):
        x = drawX(80, i)
        y = drawY(32, i) + 120
        t.goto(x, y)
    t.fillcolor("#ffaaa0")
    t.end_fill()
    # 13
    t.pu()
    t.goto(64, 120)
    t.pd()
    t.pencolor("#b1c9e9")
    t.begin_fill()
    for i in range(360):
        x = drawX(4, i) + 60
        y = drawY(1, i) + 120
        t.goto(x, y)
    t.goto(64, 170)
    for i in range(540):
        x = drawX(4, i) + 60
        y = drawY(1, i) + 170
        t.goto(x, y)
    t.goto(56, 120)
    t.fillcolor("#b1c9e9")
    t.end_fill()
    t.pencolor("white")
    t.pensize(2)
    for i in range(1, 6):
        t.goto(64, 120 + 10 * i)
        t.pu()
        t.goto(56, 120 + 10 * i)
        t.pd()
    t.pu()
    t.goto(60, 170)
    t.pd()
    t.goto(60, 180)
    t.pensize(1)
    #
    t.pu()
    t.goto(64, 190)
    t.pd()
    t.pencolor("#f1add1")
    t.begin_fill()
    for i in range(360):
        x = drawX(4, i) + 60
        y = drawY(10, i) + 190
        t.goto(x, y)
    t.fillcolor("#f1add1")
    t.end_fill()
    
    # 14
    t.pu()
    t.goto(-56, 120)
    t.pd()
    t.pencolor("#b1c9e9")
    t.begin_fill()
    for i in range(360):
        x = drawX(4, i) - 60
        y = drawY(1, i) + 120
        t.goto(x, y)
    t.goto(-56, 170)
    for i in range(540):
        x = drawX(4, i) - 60
        y = drawY(1, i) + 170
        t.goto(x, y)
    t.goto(-64, 120)
    t.fillcolor("#b1c9e9")
    t.end_fill()
    t.pencolor("white")
    t.pensize(2)
    for i in range(1, 6):
        t.goto(-56, 120 + 10 * i)
        t.pu()
        t.goto(-64, 120 + 10 * i)
        t.pd()
    t.pu()
    t.goto(-60, 170)
    t.pd()
    t.goto(-60, 180)
    t.pensize(1)
    #
    t.pu()
    t.goto(-56, 190)
    t.pd()
    t.pencolor("#f1add1")
    t.begin_fill()
    for i in range(360):
        x = drawX(4, i) - 60
        y = drawY(10, i) + 190
        t.goto(x, y)
    t.fillcolor("#f1add1")
    t.end_fill()
    # 15
    t.pu()
    t.goto(0, 130)
    t.pd()
    t.pencolor("#b1c9e9")
    t.begin_fill()
    for i in range(360):
        x = drawX(4, i)
        y = drawY(1, i) + 130
        t.goto(x, y)
    t.goto(4, 180)
    for i in range(540):
        x = drawX(4, i)
        y = drawY(1, i) + 180
        t.goto(x, y)
    t.goto(-4, 130)
    t.fillcolor("#b1c9e9")
    t.end_fill()
    t.pencolor("white")
    t.pensize(2)
    for i in range(1, 6):
        t.goto(4, 130 + 10 * i)
        t.pu()
        t.goto(-4, 130 + 10 * i)
        t.pd()
    t.pu()
    t.goto(0, 180)
    t.pd()
    t.goto(0, 190)
    t.pensize(1)
    #
    t.pu()
    t.goto(4, 200)
    t.pd()
    t.pencolor("#f1add1")
    t.begin_fill()
    for i in range(360):
        x = drawX(4, i)
        y = drawY(10, i) + 200
        t.goto(x, y)
    t.fillcolor("#f1add1")
    t.end_fill()
    # 16
    t.pu()
    t.goto(30, 110)
    t.pd()
    t.pencolor("#b1c9e9")
    t.begin_fill()
    for i in range(360):
        x = drawX(4, i) + 30
        y = drawY(1, i) + 110
        t.goto(x, y)
    t.goto(34, 160)
    for i in range(540):
        x = drawX(4, i) + 30
        y = drawY(1, i) + 160
        t.goto(x, y)
    t.goto(26, 110)
    t.fillcolor("#b1c9e9")
    t.end_fill()
    t.pencolor("white")
    t.pensize(2)
    for i in range(1, 6):
        t.goto(34, 110 + 10 * i)
        t.pu()
        t.goto(26, 110 + 10 * i)
        t.pd()
    t.pu()
    t.goto(30, 160)
    t.pd()
    t.goto(30, 170)
    t.pensize(1)
    #
    t.pu()
    t.goto(34, 180)
    t.pd()
    t.pencolor("#f1add1")
    t.begin_fill()
    for i in range(360):
        x = drawX(4, i) + 30
        y = drawY(10, i) + 180
        t.goto(x, y)
    t.fillcolor("#f1add1")
    t.end_fill()
    # 17
    t.pu()
    t.goto(-30, 110)
    t.pd()
    t.pencolor("#b1c9e9")
    t.begin_fill()
    for i in range(360):
        x = drawX(4, i) - 30
        y = drawY(1, i) + 110
        t.goto(x, y)
    t.goto(-26, 160)
    for i in range(540):
        x = drawX(4, i) - 30
        y = drawY(1, i) + 160
        t.goto(x, y)
    t.goto(-34, 110)
    t.fillcolor("#b1c9e9")
    t.end_fill()
    t.pencolor("white")
    t.pensize(2)
    for i in range(1, 6):
        t.goto(-26, 110 + 10 * i)
        t.pu()
        t.goto(-34, 110 + 10 * i)
        t.pd()
    t.pu()
    t.goto(-30, 160)
    t.pd()
    t.goto(-30, 170)
    t.pensize(1)
    #
    t.pu()
    t.goto(-26, 180)
    t.pd()
    t.pencolor("#f1add1")
    t.begin_fill()
    for i in range(360):
        x = drawX(4, i) - 30
        y = drawY(10, i) + 180
        t.goto(x, y)
    t.fillcolor("#f1add1")
    t.end_fill()
    ###随机
    color = ["#e28cb9", "#805a8c", "#eaa989", "#6e90b7", "#b8b68f", "#e174b5", "#cf737c", "#7c8782"]
    for i in range(80):
        t.pu()
        x = r.randint(-120, 120)
        y = r.randint(-25, 30)
        t.goto(x, y)
        t.pd()
        t.dot(r.randint(2, 5), color[r.randint(0, 7)])
    for i in range(40):
        t.pu()
        x = r.randint(-90, 90)
        y = r.randint(-35, 10)
        t.goto(x, y)
        t.pd()
        t.dot(r.randint(2, 5), color[r.randint(0, 7)])
    
    for i in range(40):
        t.pu()
        x = r.randint(-80, 80)
        y = r.randint(60, 90)
        t.goto(x, y)
        t.pd()
        t.dot(r.randint(2, 5), color[r.randint(0, 7)])
    for i in range(30):
        t.pu()
        x = r.randint(-50, 50)
        y = r.randint(45, 70)
        t.goto(x, y)
        t.pd()
        t.dot(r.randint(2, 5), color[r.randint(0, 7)])
    for i in range(50):
        t.pu()
        x = r.randint(-500, 500)
        y = r.randint(120, 300)
        t.goto(x, y)
        t.pd()
        t.dot(r.randint(3, 5), color[r.randint(0, 7)])
    t.seth(90)
    t.pu()
    t.goto(0, 0)
    t.fd(210)
    t.left(70)
    t.fd(170)
    t.pd()
    t.write("Happy Birthday Peggy", font=("Curlz MT", 40))
    t.done()
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月4日
  • 已采纳回答 12月27日
  • 创建了问题 12月27日

悬赏问题

  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探