【案例】绘制国际象棋棋盘?(turtle 登场)

您所在的位置:网站首页 怎么绘制象棋棋盘 【案例】绘制国际象棋棋盘?(turtle 登场)

【案例】绘制国际象棋棋盘?(turtle 登场)

2024-07-10 20:09| 来源: 网络整理| 查看: 265

文章目录 案例介绍准备工作细节设计代码汇总运行结果后记参考资料

案例介绍

今天我们来用 turtle 画一个国际象棋棋盘,大小为 8x8。

在这里插入图片描述

国际象棋棋盘

turtle 绘图(海归绘图)很适合用来引导孩子学习编程,请想象绘图区有一只机器海龟,起始位置在 x-y 平面的(0, 0)点,先执行 import turtle,再执行 turtle.forward(15),它将朝所面对的 x 轴 正方向前进 15 像素,随着它的移动画出一条线段。再执行 turtle.right(25),它将原地右转 25 度… 通过对这些命令的组合使用,我们可以轻松绘制出精美的形状和图案。——《turtle——海归绘图》

准备工作

我们需要使用 案例介绍 中提到的 turtle 基本使用方法,来一点一点绘制出这个棋盘,先绘制线条,然后再将对应的黑色块填充即可。

不需要安装额外的库,turtle 库是 Python 3 自带的库,只需要引用即可。

细节设计 先绘制棋盘线段。用两个 for 循环即可实现。然后填充棋盘中的黑色块。使用双重循环实现,内层循环(2个 for 循环)以两行为一组,填充里面的黑色方块,外层循环控制哪一组(一共4组)。 代码汇总 import turtle import tkinter as tk def draw_table(): turtle.speed(20) # 绘图速度 turtle.pensize(1) # 绘图笔画粗细 turtle.pencolor("black") # 画笔颜色 # 间隔大小 interval = 30 # 棋盘格子大小 # 棋盘长度 length = interval * (8 / 2) # 绘制棋盘 先绘制横线再绘制纵线 turtle.penup() turtle.goto(-length, length) for i in range(0, 9): turtle.pendown() turtle.goto(length, length - interval * i) turtle.penup() turtle.goto(-length, length - interval * (i + 1)) turtle.penup() turtle.goto(-length, -length) for i in range(0, 9): turtle.pendown() turtle.goto(-length + interval * i, length) turtle.penup() turtle.goto(-length + interval * (i + 1), -length) # 填充 内层循环实现一次性绘制两行,而外层循环控制四次循环 turtle.penup() turtle.goto(-length, length) turtle.fillcolor("black") for j in range(0, -8, -2): for i in range(1, 8, 2): turtle.goto(-length + interval * i, length + interval * j) turtle.pendown() turtle.begin_fill() turtle.goto(-length + interval * (i + 1), length + interval * j) turtle.goto(-length + interval * (i + 1), length + interval * j - interval) turtle.goto(-length + interval * i, length + interval * j - interval) turtle.goto(-length + interval * i, length + interval * j) turtle.end_fill() turtle.penup() for i in range(0, 8, 2): turtle.goto(-length + interval * i, length + interval * j - interval) turtle.pendown() turtle.begin_fill() turtle.goto(-length + interval * (i + 1), length + interval * j - interval) turtle.goto(-length + interval * (i + 1), length + interval * j - interval * 2) turtle.goto(-length + interval * i, length + interval * j - interval * 2) turtle.goto(-length + interval * i, length + interval * j - interval) turtle.end_fill() turtle.penup() turtle.mainloop() draw_table()

做一个 GIF 动画来详细展示绘制过程。

在这里插入图片描述

运行结果

在这里插入图片描述

绘制棋盘边界

在这里插入图片描述

填充颜色块

在这里插入图片描述

最终结果 后记

以上就是我们使用 turtle 练手的小项目了,关于 turtle 的其它操作可以参考 参考资料。

参考资料 turtle 库官方文档:https://docs.python.org/zh-cn/3.8/library/turtle.html#introduction


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3