我正在参加中秋创意投稿大赛,详情请看:中秋创意投稿大赛
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()
最终效果
小伙伴们动手尝试一下吧。
最后,祝大家中秋快乐,顺风顺水,好运连连。