【案例】绘制国际象棋棋盘?(turtle 登场) |
您所在的位置:网站首页 › 怎么绘制象棋棋盘 › 【案例】绘制国际象棋棋盘?(turtle 登场) |
文章目录
案例介绍准备工作细节设计代码汇总运行结果后记参考资料
案例介绍
今天我们来用 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 |