使用Python的内置的turtle模块来绘制中秋节快乐场景
使用Python的内置的turtle模块来绘制中秋节快乐场景
中秋节,是中国民间的传统节日。每年农历八月十五庆祝。现在使用Python的内置的turtle模块来绘制中秋节快乐场景。先给出效果图:
再给出源码:
import turtle as t
import random as r
# 设置画布
t.setup(width=800, height=600)
t.bgcolor("navy") # 设置背景色
t.title("中秋节快乐!")
# 函数:绘制月亮
def draw_moon(x, y, radius):
t.penup()
t.goto(x, y - radius) # 移动到圆的底部
t.pendown()
t.color("lightyellow")
t.begin_fill()
t.circle(radius) # 绘制圆
t.end_fill()
# 函数:绘制星星
def draw_star(x, y, size):
t.penup()
t.goto(x, y) # 移动到星星位置
t.pendown()
t.color("white")
t.begin_fill()
for _ in range(5): # 绘制五角星
t.forward(size)
t.right(144) # 转角144度
t.end_fill()
# 绘制立体月饼
def draw_circle(x, y, radius, color):
t.penup()
t.goto(x, y - radius)
t.pendown()
t.color(color)
t.begin_fill()
t.circle(radius)
t.end_fill()
def draw_3d_mooncake(x, y, radius):
# 绘制阴影
draw_circle(x + 8, y - 8, radius, "#D2B48C")
# 绘制月饼主体
for i in range(radius, 5, -3):
color = (1 - i/radius, 0.7 - i/(radius*2), 0.4 - i/(radius*3))
draw_circle(x, y, i, color)
# 绘制月饼表面花纹
t.penup()
t.goto(x, y)
t.pendown()
t.color("#8B4513")
t.setheading(0)
# 在中心写"月"字
t.penup()
t.goto(x, y - 9) # 稍微向下调整以使字符居中
t.color("#8B4513") # 使用深褐色
t.write("月", align="center", font=("Arial", 10, "bold"))
# 绘制月亮
draw_moon(200, 230, 50)
# 随机绘制星星
for _ in range(15):
x = r.randint(-400, 400) # 随机 x 坐标
y = r.randint(0, 250) # 随机 y 坐标
draw_star(x, y, r.randint(10, 20)) # 随机星星大小
# 绘制立体月饼
#draw_mooncake(-200, -100)
# 绘制立体感月饼
draw_3d_mooncake(-200, -100, 30)
draw_3d_mooncake(-100, -100, 30)
# 绘制贺词
t.penup()
t.goto(0, -250)
t.color("white")
t.pendown()
t.write("祝大家中秋节快乐!", align="center", font=("Arial", 24, "bold"))
# 完成绘制
t.hideturtle() # 隐藏海龟
t.done() # 结束