风车月饼

474 阅读2分钟

我正在参加中秋创意投稿大赛,详情请看:中秋创意投稿大赛

turtle 介绍

turtle 模块是让初学者建立对 Python 兴趣的好帮手,通过简单几行代码,就能绘制出漂亮的图案。再配上循环,甚至经常绘制出连自己都意想不到的美妙图案。下面我们就一起来感受下 turtle 的魅力吧。 正好中秋节马上要到了,最近股市行情不太好,有些小伙伴是不是总感觉霉运当头。所以我准备用 Python 做一盒『风车月饼』,吹走身上的霉运,让大家顺风顺水。

turtle 方法

方法功能
turtle.penup()画笔抬起
turtle.pendown()画笔落下
turtle.speed()速度
turtle.forward()前进
turtle.backward()后退
turtle.left()左转
turtle.right()右转
turtle.goto()前往,绝对地址
turtle.begin_fill()开始填充
turtle.end_fill()结束填充
turtle.circle()画圆
turtle.pensize()画笔粗细
turtle.done()开始事件循环,必须作为一个海龟绘图程序的结束语句

这里我只列出了本项目中用到 turtle 方法,更多更详细的方法介绍请参考 turtle --- 海龟绘图 — Python 3.9.7 文档

完整代码

wind_mill_moon_cake.py

# -*- coding: utf-8 -*-

import turtle


def goto(x, y):
    turtle.penup()              # 画笔抬起,防止拖线
    turtle.goto(x, y)           # 将海龟走到该坐标位置 绝对坐标
    turtle.pendown()            # 画笔落下


def circle():
    turtle.color("#D1C185", "#839F26")
    turtle.pensize(5)           # 画笔粗细
    goto(0, -210)
    turtle.circle(210)


def outline():
    goto(0, 0)
    turtle.color("#839F26")     # 颜色
    for _ in range(20):
        turtle.left(18)         # 左转
        turtle.begin_fill()     # 开始填充图形
        turtle.forward(220)     # 向前
        turtle.circle(50, 180)  # 海龟左侧某一点为圆心曲线运行
        turtle.goto(0, 0)
        turtle.left(180)
        turtle.end_fill()       # 填充完成


def wind_mill():
    goto(0, 0)
    turtle.color("#7FBF26")     # 颜色
    for _ in range(4):
        turtle.left(45)         # 左转
        turtle.begin_fill()     # 开始填充图形
        turtle.left(45)
        turtle.circle(100, 180) # 海龟左侧某一点为圆心曲线运行
        turtle.goto(0, 0)
        turtle.left(180)
        turtle.end_fill()       # 填充完成


if __name__ == '__main__':
    turtle.speed(11)            # 海龟速度
    outline()                   # 外部轮廓
    circle()                    # 圆
    wind_mill()                 # 风车
    turtle.done()

最终效果

动画3.gif

小伙伴们动手尝试一下吧。

最后,祝大家中秋快乐,顺风顺水,好运连连。