点击关注
发现更多精彩内容~
FOCUS ON US
写在前面
小伙伴们最近过得可好吖,有没有想小编呢?这几天小编收到了一些有关生日蛋糕代码的问题,小编把这些问题梳理了一下,感兴趣的小伙伴们快来看看呀,学会了以后给你最好的朋友画一个吧!
生日祝福
要不,咱们先挑选一句生日祝福?
1. 年年有今日,岁岁有今朝。
2. 愿你如阳光,明媚不忧伤。
3. 愿你吃在嘴里,美在心里。
4. 愿你身体健,快乐无烦恼。
5. 愿你梦的远方,温暖为向。
6. 愿时光温柔,多一点幸运。
7. 愿你如月光,明亮不清冷。
8. 愿你幸福笑,如意直到老。
9. 愿你事事顺利,余生皆甜。
**
绘图入门
**
**
既然咱们要画生日蛋糕,那当然需要简单学习一下画画的工具啦~**
Turtle是Python语言中的一个绘图函数库,它可以在屏幕上创建图形和绘制各种形状。使用Turtle,我们可以通过简单的命令来控制一个小乌龟在屏幕上移动,并绘制出我们想要的图形。
要使用Turtle,我们首先需要导入turtle模块。导入模块的方式是在代码的开头添加一行import turtle
。接下来,我们需要创建一个Turtle对象来控制乌龟的移动和绘制。创建对象的方式是添加一行t = turtle.Turtle()
。我们可以使用Turtle对象的forward()
方法来让乌龟往前移动一定的距离,使用backward()
方法让乌龟往后移动,使用left()
方法让乌龟向左转,使用right()
方法让乌龟向右转。除了移动,我们还可以使用Turtle对象的penup()
方法将乌龟画笔抬起,使用pendown()
方法将乌龟画笔放下,从而控制乌龟是否在移动过程中绘制图形。
通过组合使用上述方法,我们可以绘制出各种形状和图案。下面是一个简单的例子,演示了如何使用Turtle在屏幕上绘制一个正方形:
import turtle
# 创建Turtle对象
t = turtle.Turtle()
# 绘制正方形
for i in range(4):
t.forward(100)
t.right(90)
# 结束绘制
turtle.done()
在上面的例子中,我们首先导入了turtle模块,然后创建了一个Turtle对象。接着使用循环语句绘制了一个正方形,每次移动100个单位距离,并向右转90度。最后使用turtle.done()
方法结束绘制过程。除了绘制基本形状,Turtle还提供了其他一些有用的方法,如circle()
方法可以绘制圆形,dot()
方法可以绘制一个点,write()
方法可以在屏幕上写文字等等。在使用Turtle绘图时,我们可以使用不同的颜色、粗细和样式来装饰图形。Turtle提供了一些用于控制画笔的方法,如pensize()
方法可以设置画笔的粗细,pencolor()
方法可以设置画笔的颜色,fillcolor()
方法可以设置图形的填充颜色等等。使用Turtle可以让我们用简单的代码快速绘制出各种有趣的图形,它十分适合初学者学习编程和图形设计哦!
生日蛋糕
话不多说,直接上代码!
完整代码
import turtle as tu
import random as ra
import math
def draw_x(x, i):
return x * math.cos(math.radians(i))
def draw_y(y, i):
return y * math.sin(math.radians(i))
def ground_floor(width, height, colors_a, h):
t.penup()
t.goto(width, h)
t.pendown()
t.begin_fill()
t.fillcolor(colors_a[0])
for i in range(360):
x = draw_x(width, i)
y = draw_y(height, i) + h
t.goto(x, y)
t.end_fill()
t.begin_fill()
t.fillcolor(colors_a[1])
for i in range(180):
x = draw_x(width, -i)
y = draw_y(height + 10, -i) + h
t.goto(x, y)
for i in range(180, 360):
x = draw_x(width, i)
y = draw_y(height, i) + h
t.goto(x, y)
t.end_fill()
def each_piece(width, height_1, height_2, colors_b, h):
t.penup()
t.goto(width, h)
t.pendown()
t.begin_fill()
t.fillcolor(colors_b[0])
for i in range(360):
x = draw_x(width, i)
y = draw_y(height_1, i) + h
t.goto(x, y)
t.end_fill()
t.begin_fill()
t.fillcolor(colors_b[0])
for i in range(540):
x = draw_x(width, i)
y = draw_y(height_1, i) + height_2 + h
t.goto(x, y)
t.goto(-width, h)
t.end_fill()
t.penup()
t.goto(width - 10, height_2 + h)
t.pendown()
t.begin_fill()
t.fillcolor(colors_b[1])
for i in range(360):
x = draw_x(width - 10, i)
y = draw_y(height_1 * 0.9, i) + height_2 + h
t.goto(x, y)
t.end_fill()
t.penup()
t.goto(width, h)
t.pendown()
t.begin_fill()
t.fillcolor(colors_b[2])
for i in range(180):
x = draw_x(width, -i)
y = draw_y(height_1, -i) + 10 + h
t.goto(x, y)
t.goto(-width, h)
for i in range(180, 360):
x = draw_x(width, i)
y = draw_y(height_1, i) + h
t.goto(x, y)
t.end_fill()
t.penup()
t.goto(width, height_2 + h)
t.pendown()
t.begin_fill()
t.fillcolor(colors_b[3])
for i in range(1800):
x = draw_x(width, 0.1 * i)
y = draw_y(-height_1 * 0.3, i) + h
t.goto(x, y)
t.goto(-width, height_2 + h)
for i in range(180, 360):
x = draw_x(width, i)
y = draw_y(height_1, i) + height_2 + h
t.goto(x, y)
t.end_fill()
def candle(width, height, color_c, w, h1, h2):
t.penup()
t.goto(w, h1)
t.pendown()
t.begin_fill()
t.fillcolor(color_c[0])
for i in range(360):
x = draw_x(width, i) + w
y = draw_y(height, i) + h1
t.goto(x, y)
t.goto(width + w, h2)
for i in range(540):
x = draw_x(width, i) + w
y = draw_y(height, i) + h2
t.goto(x, y)
t.goto(-width + w, h1)
t.end_fill()
t.pencolor(color_c[1])
for i in range(1, 6):
t.goto(width + w, h1 + 10 * i)
t.penup()
t.goto(-width + w, h1 + 10 * i)
t.pendown()
t.penup()
t.goto(w, h2)
t.pendown()
t.goto(w, h2)
def star(w1, w2, h1, h2, a, color):
t.penup()
x = ra.randint(w1, w2)
y = ra.randint(h1, h2)
c = color
t.goto(x, y)
t.pendown()
t.pencolor(c)
t.begin_fill()
t.fillcolor(c)
for i in range(5):
t.forward(a)
t.right(144)
t.forward(a)
t.left(72)
t.end_fill()
def Stars(n, w1, w2, h1, h2, a, c):
for i in range(n):
star(w1, w2, h1, h2, a, c)
def Year(w, h, c, o):
t.penup()
t.goto(w, h)
t.pendown()
t.pencolor(c)
t.write(o, font=("Curlz MT", 25, "bold"))
colors_a = ['oldlace', 'mistyrose']
colors_b = ['lightcyan', 'oldlace', 'pink', 'mistyrose']
colors_c = ['skyblue', 'white']
tu.setup(0.66, 0.66)
tu.screensize(1.0, 0.75)
tu.title("生日快乐!")
tu.bgcolor('pink')
t = tu.Turtle()
# tu.tracer(0)
t.screen.delay(0)
t.hideturtle()
t.pencolor("white")
ground_floor(160, 30, colors_a, -50)
each_piece(120, 30, 40, colors_b, -50)
each_piece(90, 20, 30, colors_b, -10)
each_piece(60, 10, 20, colors_b, 20)
candle(4, 1, colors_c, 15, 40, 100)
candle(4, 1, colors_c, -15, 40, 100)
Year(-22, 95, 'cyan', '2')
Year(8, 95, 'cyan', '0')
color = 'yellow'
t.penup()
t.goto(-250, 200)
t.pendown()
t.pencolor("cyan")
t.write("Happy Birthday!", font=("Curlz MT", 50, "bold"))
t.penup()
t.goto(250, -150)
t.pendown()
t.pencolor("white")
t.write("by~爱你的某某", font=("黑体", 20, "bold"))
Stars(199, -500, 500, -500, 500, 3, color)
tu.mainloop()
**
下载代码
关键词:python028
提取码:2ppt
程序分析
**
这段代码使用Turtle模块绘制了一个生日蛋糕:
-
导入了turtle和random模块,并定义了一个数学函数math。
-
定义了两个函数draw_x和draw_y,用来计算坐标值。
-
定义了一个绘制地板的函数ground_floor,接受盘子的宽度、高度、颜色列表和高度偏移量作为参数。函数使用for循环绘制了盘子的两个颜色部分。
-
定义了一个绘制每个蛋糕层的函数each_piece,接受蛋糕层的宽度、高度1、高度2、颜色列表和高度偏移量作为参数。函数使用for循环绘制了蛋糕层的各个部分。
-
定义了一个绘制蜡烛的函数candle,接受蜡烛的宽度、高度、颜色列表和坐标偏移量作为参数。函数使用for循环绘制了蜡烛的形状,然后使用for循环绘制蜡烛的火焰。
-
定义了一个绘制星星的函数star,接受星星的坐标范围、边长和颜色作为参数。函数随机选择一个坐标位置,并绘制了一个填充颜色的五角星。
-
定义了一个绘制多个星星的函数Stars,接受星星的数量、坐标范围、边长和颜色作为参数。函数使用for循环调用star函数绘制了多个星星。
-
定义了一个显示年份的函数Year,接受坐标位置、颜色和年份作为参数。函数在指定位置绘制了指定颜色和字体的年份。
-
定义了一个盘子颜色列表colors_a、蛋糕层颜色列表colors_b和蜡烛颜色列表colors_c。
-
设置了绘图窗口的大小和标题,设置了背景颜色。
-
创建了一个Turtle对象t,并隐藏了它的图标。
-
调用各个函数绘制了场景,包括地板、蛋糕层、蜡烛、年份、标题和星星。
-
调用mainloop函数进入事件循环,保持窗口的显示状态。
**
运行结果
**
为您定制
1.修改标题:"生日快乐!"
修改代码第 164 行的文字即可
2.修改文字:"Happy Birthday!"
修改代码第184行的文字即可
3.修改文字:"by~爱你的某某"
修改代码第189行的文字即可
4.修改蜡烛上的数字:"20"
修改代码第177和178行的文字即可
⭐修改画笔速度
修改代码第167和168行:
其中:
tu.tracer(0)
表示 一下子画完 ,如果不想一下子画完,可以把这句代码删掉哦~
t.screen.delay(0)
表示 加速画 ,如果不想加速画,可以把这句代码删掉哦~
当两句代码都删掉就是最慢速度画啦!(但是会很慢哦,个人还是建议保留第168行的代码)
当然啦,也可以使用下面的代码 替换掉 第 167和168行 的代码 :
t.speed(0)
这里的0可以换成0~10内的数字哦, 数字越大画得越快 !
5.其他
在代码的165行可以修改蛋糕的颜色:(需要输入颜色的英文)
在代码的162行可以修改整个窗口的大小:(需要输入0-1之间的小数)
推荐文章
写在后面
我是一只有趣的兔子,感谢你的喜欢!