为了让博友们加深对 turtle 库的印象以及能更加灵活地运用 turtle 库,故按照博主之前编写关于 turtle 文章顺序设置实战任务。如果没有看过博主之前文章的小伙伴们,可以点击以下链接进行学习观看,理论 + 实践才能成长得更快,加油。
- 全网最细海龟 (turtle) 画图讲解 (一):初探海龟绘图
- 全网最细海龟 (turtle) 画图讲解 (二):窗口控制
- 全网最细海龟 (turtle) 画图讲解 (三):设置画笔样式
- 全网最细海龟 (turtle) 画图讲解 (四):绘制图形
- 全网最细海龟 (turtle) 画图讲解 (五):输入/输出文字及鼠标与键盘交互设计
1. 一笔绘制填充的多角形
对于顶角数量为奇数的多角星都可以用一笔绘制出来,每一个多角星都会有一个外接圆。圆周角的度数等于它所对的弧度数的一半。所以对于 n 角星,内角的计算公式为 360/2/n=180/n,旋转的角度为 180-180/n。请根据该规则应用海龟绘图绘制一个多角星。例如,指定顶角的数量为 5,则绘制五角星,效果下图所示。
考察知识点:turtle 模块绘制线条 + 方向的设置 + 绘制填充图形的应用
参考学习文章: 全网最细海龟 (turtle) 画图讲解 (四):绘制图形
程序示例代码如下:
# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:5.一笔绘制填充的多角星.py
@time:2021/01/03
"""
import turtle # 导入海龟绘图模块
turtle.width(2) # 线粗2像素
turtle.color('red', 'yellow') # 设置边框和填充的颜色
side = 5 # 边数
turtle.begin_fill()
for i in range(side): # 循环一次画一次边,五角星5边,所以循环5次
turtle.forward(100) # 边长
turtle.left(180 - 180 / side) # 旋转角度
turtle.end_fill()
turtle.done() # 海龟绘图程序的结束语句(开始主循环)
2. 制作 8 × 8 的国际象棋棋盘格
国际象棋棋盘是个正方形,由横、纵各 8 格、颜色一深一浅交错排列的 64 个小方格组成。本任务要求编写一段 Python 代码,使用海龟绘图绘制一张 8×8 的国际象棋棋盘格,效果如下图所示。
考察知识点:turtle 模块绘制正方形 + 方向的设置 + 绘制填充图形的应用
参考学习文章: 全网最细海龟 (turtle) 画图讲解 (四):绘制图形
示例代码1:
# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:6.制作8×8的国际象棋棋盘格.py
@time:2021/01/04
"""
import turtle # 导入turtle绘图模块
for row in range(8):
if row % 2 == 0:
for i in range(8):
if i % 2 == 0:
turtle.color("black")
turtle.begin_fill() # 标记填充开始
for j in range(4):
turtle.forward(20)
turtle.left(90)
turtle.end_fill() # 标记填充结束
else:
turtle.forward(40)
for k in range(3):
turtle.left(90)
turtle.forward(20)
turtle.left(90)
turtle.forward(20)
turtle.setx(0)
turtle.sety((row + 1) * -20)
else:
for m in range(8):
if m % 2 == 0:
for n in range(4):
turtle.forward(20)
turtle.left(90)
else:
turtle.color("black")
turtle.begin_fill()
turtle.forward(40)
for i in range(3):
turtle.left(90)
turtle.forward(20)
turtle.end_fill()
turtle.left(90)
turtle.forward(20)
if row != 7:
turtle.setx(0)
turtle.sety((row + 1) * -20)
turtle.backward(20)
turtle.ht() # 隐藏画笔
turtle.done() # 海龟绘图程序的结束语句(开始主循环)
示例代码2:
# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:7.制作8×8的国际象棋棋盘格.py
@time:2021/01/04
"""
import turtle # 导入海龟绘图模块
def draw_rect(c):
turtle.color(c, c) # 设置颜色
turtle.begin_fill() # 开始填充
for i in range(4):
turtle.forward(32)
turtle.right(90)
turtle.end_fill() # 结束填充
row = 8 # 行数
col = 8 # 列数
for i in range(4):
turtle.forward(32 * 8)
turtle.right(90)
for i in range(row):
for j in range(col):
turtle.penup() # 抬笔
turtle.goto(32 * j, -32 * i) # 移动
turtle.pendown() # 落笔
if i % 2 == 0: # 奇数行
if j % 2 == 0: # 奇数列绘制
draw_rect('black')
else: # 偶数行
if ~j % 2 == 0: # 偶数列绘制
draw_rect('black')
turtle.ht() # 隐藏海龟光标
turtle.done() # 海龟绘图程序的结束语句(开始主循环)
至此今天的案例就到此结束了,笔者在这里声明,笔者写文章只是为了学习交流,以及让更多学习 Python 基础的读者少走一些弯路,节省时间,并不用做其他用途,如有侵权,联系博主删除即可。感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!
好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请点赞
、评论
、收藏
一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
编码不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注
我哦!