当前位置:首页 > Python > 正文

Python画月饼教程 - 用turtle库绘制中秋月饼 | Python图形绘制教程

Python画月饼教程

使用turtle库绘制中秋月饼图案

为什么用Python画月饼?

中秋节是中国的传统节日,月饼是中秋节的象征。使用Python的turtle库绘制月饼图案不仅有趣,还能帮助你:

  • 学习Python图形绘制基础
  • 理解turtle库的坐标系统和绘图原理
  • 练习几何图形绘制和颜色填充
  • 创作独特的中秋节祝福程序

准备工作

在开始之前,请确保你已安装Python(推荐Python 3.6+)。turtle库是Python标准库的一部分,无需额外安装。

我们将使用以下Python模块:

import turtle
import math

分步教程:绘制月饼

1. 创建画布和画笔

初始化turtle画布并设置画笔属性:

# 创建画布和画笔
screen = turtle.Screen()
screen.setup(800, 800)
screen.bgcolor("#f8f5e9")
screen.title("中秋月饼 - Python turtle绘制")

pen = turtle.Turtle()
pen.speed(0)  # 最快速度
pen.hideturtle()

2. 绘制月饼主体

绘制一个金黄色的圆形作为月饼主体:

# 绘制月饼主体
def draw_mooncake_body(x, y, radius, color):
    pen.penup()
    pen.goto(x, y - radius)
    pen.pendown()
    pen.fillcolor(color)
    pen.begin_fill()
    pen.circle(radius)
    pen.end_fill()

# 调用函数绘制月饼主体
draw_mooncake_body(0, 0, 180, "#e6b325")  # 金黄色

3. 添加月饼花纹

在月饼边缘添加传统花纹装饰:

# 绘制月饼花纹
def draw_patterns(x, y, radius):
    pen.penup()
    pen.goto(x, y)
    pen.pendown()
    pen.color("#b34700")  # 深棕色
    
    # 绘制外圈花纹
    pen.width(3)
    for _ in range(36):
        pen.forward(radius * 0.85)
        pen.backward(radius * 0.85)
        pen.left(10)
    
    # 绘制内圈花纹
    pen.width(2)
    for _ in range(24):
        pen.circle(radius * 0.65, 30)
        pen.dot(10, "#b34700")

# 调用函数添加花纹
draw_patterns(0, 0, 180)

4. 添加文字装饰

在月饼中心添加"中秋"文字:

# 添加文字
def add_text(x, y, text, size, color):
    pen.penup()
    pen.goto(x, y)
    pen.pendown()
    pen.color(color)
    pen.write(text, align="center", font=("楷体", size, "bold"))

# 添加"中秋"文字
add_text(0, -20, "中\n秋", 48, "#b30000")

完整代码示例

以下是绘制月饼的完整Python代码:

import turtle
import math

# 创建画布和画笔
screen = turtle.Screen()
screen.setup(800, 800)
screen.bgcolor("#f8f5e9")
screen.title("中秋月饼 - Python turtle绘制")

pen = turtle.Turtle()
pen.speed(0)
pen.hideturtle()

# 绘制月饼主体
def draw_mooncake_body(x, y, radius, color):
    pen.penup()
    pen.goto(x, y - radius)
    pen.pendown()
    pen.fillcolor(color)
    pen.begin_fill()
    pen.circle(radius)
    pen.end_fill()

# 绘制月饼花纹
def draw_patterns(x, y, radius):
    pen.penup()
    pen.goto(x, y)
    pen.pendown()
    pen.color("#b34700")
    
    # 外圈花纹
    pen.width(3)
    for _ in range(36):
        pen.forward(radius * 0.85)
        pen.backward(radius * 0.85)
        pen.left(10)
    
    # 内圈花纹
    pen.width(2)
    for _ in range(24):
        pen.circle(radius * 0.65, 30)
        pen.dot(10, "#b34700")

# 添加文字
def add_text(x, y, text, size, color):
    pen.penup()
    pen.goto(x, y)
    pen.pendown()
    pen.color(color)
    pen.write(text, align="center", font=("楷体", size, "bold"))

# 绘制月饼
draw_mooncake_body(0, 0, 180, "#e6b325")
draw_patterns(0, 0, 180)
add_text(0, -20, "中\n秋", 48, "#b30000")

# 完成绘制
turtle.done()

效果展示与进阶

运行上述代码后,你将看到类似下面的月饼图案:


进阶建议

  • 添加颜色渐变:使用turtle的渐变色功能让月饼颜色更丰富
  • 创建多种口味:修改代码绘制不同颜色的月饼(如绿色抹茶、紫色芋头)
  • 添加动画效果:让月饼旋转或添加切月饼的动画
  • 绘制月饼礼盒:扩展代码绘制包含多个月饼的礼盒
  • 添加交互功能:允许用户点击选择不同口味或样式的月饼

发表评论