python画蛋糕玫瑰

情人节蛋糕

前言

盼望着盼望着,2.14号的情人节终于快来了。这是婚后的第二个情人节啦,第一个情人节因疫情和在家带孩子我俩都无精力准备惊喜。一说起情人节,就感觉那天空气中都弥漫着甜甜的恋爱味道。这个甜味就用蛋糕表示吧,所以今年决定给他用刚学一星期的python画一个情人节蛋糕。再有支玫瑰加持,哇,太心动了。

准备工作

python开发工具

PyCharm Community Edition 2020.3.2

turtle库

进行开发

1.引入相应的库及设置画布大小、背景色

import turtle as t
import math as m
import random as r
# 设置背景颜色,窗口位置以及大小
t.bgcolor("#830103")
t.setup(540,960)

2.画蛋糕

#蛋糕

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.speed(10)
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("#F6F1DE")
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("#F6F1DE")
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("#990708")
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("#990708")
t.end_fill()
# 5
t.pu()
t.goto(120, 70)
t.pd()
t.pencolor("white")
t.begin_fill()
for i in range(360):
    x = drawX(120, i)
    y = drawY(48, i) + 70
    t.goto(x, y)
t.fillcolor("white")
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("#F8E5BB")#黄色
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("#F8E5BB")
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("#AC0010")
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("#AC0010")
t.end_fill()
# 10
t.pu()
t.goto(80, 120)
t.pd()
t.pencolor("white")
t.begin_fill()
for i in range(360):
    x = drawX(80, i)
    y = drawY(32, i) + 120
    t.goto(x, y)
t.fillcolor("white")
t.end_fill()
# 11
t.pu()
t.goto(70, 120)
t.pd()
t.pencolor("#A40607")
t.begin_fill()
for i in range(360):
    x = drawX(70, i)
    y = drawY(28, i) + 120
    t.goto(x, y)
t.fillcolor("#A40607")
t.end_fill()
# 12
t.pu()
t.goto(80, 120)
t.pd()
t.begin_fill()
t.pensize(3)
t.pencolor("white")
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("white")
t.end_fill()

# 13 蜡烛
t.pu()
t.goto(64, 120)
t.pd()
t.pencolor("#BE1E08")
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("#BE1E08")
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)
#13蜡烛
t.pu()
t.goto(64, 190)
t.pd()
t.pencolor("#F8E5BB")
t.begin_fill()
for i in range(360):
    x = drawX(4, i) + 60
    y = drawY(10, i) + 190
    t.goto(x, y)
t.fillcolor("#F8E5BB")
t.end_fill()

# 14
t.pu()
t.goto(-56, 120)
t.pd()
t.pencolor("#BE1E08")
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("#BE1E08")
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("#F8E5BB")
t.begin_fill()
for i in range(360):
    x = drawX(4, i) - 60
    y = drawY(10, i) + 190
    t.goto(x, y)
t.fillcolor("#F8E5BB")
t.end_fill()
# 15
t.pu()
t.goto(0, 130)
t.pd()
t.pencolor("#BE1E08")
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("#BE1E08")
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("#F8E5BB")
t.begin_fill()
for i in range(360):
    x = drawX(4, i)
    y = drawY(10, i) + 200
    t.goto(x, y)
t.fillcolor("#F8E5BB")
t.end_fill()
# 16
t.pu()
t.goto(30, 110)
t.pd()
t.pencolor("#BE1E08")
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("#BE1E08")
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("#F8E5BB")
t.begin_fill()
for i in range(360):
    x = drawX(4, i) + 30
    y = drawY(10, i) + 180
    t.goto(x, y)
t.fillcolor("#F8E5BB")
t.end_fill()
# 17
t.pu()
t.goto(-30, 110)
t.pd()
t.pencolor("#BE1E08")
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("#BE1E08")#红色
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("#F8E5BB")
t.begin_fill()
for i in range(360):
    x = drawX(4, i) - 30
    y = drawY(10, i) + 180
    t.goto(x, y)
t.fillcolor("#F8E5BB")
t.end_fill()
t.up()
t.goto(-160, 250)
t.write("情人节快乐", font=("Curlz MT", 50))

3.画玫瑰花

#玫瑰花
t.pu()
t.goto(-170,-270)
t.left(90)
t.fd(200)
t.pd()
t.right(90)

# 花蕊

t.fillcolor("firebrick")

t.begin_fill()

t.circle(10, 180)

t.circle(25, 110)

t.left(50)

t.circle(60, 45)

t.circle(20, 170)

t.right(24)

t.fd(30)

t.left(10)

t.circle(30, 110)

t.fd(20)

t.left(40)

t.circle(90, 70)

t.circle(30, 150)

t.right(30)

t.fd(15)

t.circle(80, 90)

t.left(15)

t.fd(45)

t.right(165)

t.fd(20)

t.left(155)

t.circle(150, 80)

t.left(50)

t.circle(150, 90)

t.end_fill()

# 花瓣1

t.left(150)

t.circle(-90, 70)

t.left(20)

t.circle(75, 105)

t.setheading(60)

t.circle(80, 98)

t.circle(-90, 40)

# 花瓣2

t.left(180)

t.circle(90, 40)

t.circle(-80, 98)

t.setheading(-83)

# 叶子1

t.fd(30)

t.left(90)

t.fd(25)

t.left(45)

t.fillcolor("olivedrab")

t.begin_fill()

t.circle(-80, 90)

t.right(90)

t.circle(-80, 90)

t.end_fill()

t.right(135)

t.fd(60)

t.left(180)

t.fd(85)

t.left(90)

t.fd(80)

# 叶子2

t.right(90)

t.right(45)

t.fillcolor("olivedrab")

t.begin_fill()

t.circle(80, 90)

t.left(90)

t.circle(80, 90)

t.end_fill()

t.left(135)

t.fd(60)

t.left(180)

t.fd(60)

t.right(90)

t.circle(200, 60)
t.done()

效果

蛋糕玫瑰
主色调用了红色,红色代表着激情与浪漫,辅以白色,白色代表着纯洁。嗯,有秀禾婚纱那味了,愿所有情侣都可以着秀禾/婚纱走进婚礼的殿堂。

附自制的一张蛋糕我用到的色卡
色卡
色卡文字版链接

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值