[Python] 用 turtle 来绘制瑞典国旗

背景

turtle --- Turtle graphics 中提供了关于 turtle\text{turtle} turtle 模块的介绍。我想用 turtle\text{turtle} turtle 来生成些简单的图案,以巩固学习的效果。有些国家的国旗图案比较简单,可以从这里入手

正文

基本的数据

根据 Sweden 网页所提供的信息,瑞典国旗中各部分的比例如下图所示

我在别的网站上搜到了瑞典国旗中,蓝色和黄色的具体数值(下图中给出了两组数值,我们就用 NCS\text{NCS} NCS 那一组吧)。

代码

我的整体思路是这样的 ⬇️

  1. 先画出一个蓝色的矩形
  2. 画出黄色十字的那一横
  3. 画出黄色十字的那一竖

在此基础上,可以写出完整的 Python\text{Python} Python 代码 ⬇️

python 复制代码
import turtle

ratio = 40
length = 5 + 2 + 9
height = 4 + 2 + 4

def draw_rectangle(start_x, start_y, length, height, color):
    turtle.teleport(start_x, start_y)
    turtle.setheading(0)

    turtle.color(color, color)
    with turtle.fill():
        turtle.forward(length)
        turtle.right(90)
        turtle.forward(height)
        turtle.right(90)
        turtle.forward(length)
        turtle.right(90)
        turtle.forward(height)

draw_rectangle(-length * ratio // 2, height * ratio // 2, length * ratio, height * ratio, "#005583")
draw_rectangle(-length * ratio // 2, 2 * ratio // 2, length * ratio, 2 * ratio, "#FFC200")
draw_rectangle(-length * ratio // 2 + 5 * ratio, height * ratio // 2, 2 * ratio, height * ratio, "#FFC200")

turtle.hideturtle()

turtle.mainloop()

请将以上 Python\text{Python} Python 程序保存为 draw_sweden_national_flag.py\text{draw\_sweden\_national\_flag.py} draw_sweden_national_flag.py。使用如下命令可以运行 draw_sweden_national_flag.py\text{draw\_sweden\_national\_flag.py} draw_sweden_national_flag.py

bash 复制代码
python3 draw_sweden_national_flag.py

运行时的效果示意图如下

最终的效果如下

参考资料

相关推荐
小小张说故事1 小时前
Python 的 a[1:5:2] 到底切出了什么?拆开 slice 对象、__getitem__ 与负步长那次反向
python
wuyk5551 小时前
PyQt6-第15讲-数据可视化QChart
python·ui·信息可视化·pyqt
天天被压力1 小时前
【A股分钟级高频数据完全手册 #04】指数分钟级行情数据接口:沪深指数Pro版最新分时取数
java·人工智能·python
日日大王学编程1 小时前
2026主流AI Agent产品分类、核心差异与技术特性全解析
人工智能·后端·python
天天被压力1 小时前
【A股分钟级高频数据完全手册 #03】股票历史1分钟K线数据接口怎么用:Pro版批量拉取与本地缓存
java·人工智能·python
武天旭17 小时前
AI安全--AI大模型的毒性偏见与安全对齐实践
人工智能·python·深度学习
视觉小萌新18 小时前
AI Class 3 · Chapter 2-3:函数、异常、文件读写+JSON / JSONL 读写(小白版)
人工智能·python·json
小小张说故事19 小时前
Python 的 obj.x 到底按什么顺序找?拆开数据描述符、实例字典和 __getattr__ 那条优先级链
python
用户114818678948420 小时前
水印的实现方式逻辑
前端·python
贾公子20 小时前
从单条内容到账号维度——AIGC 风险评分的工程实现
后端·python