海龟 (turtle) 画图实战任务(五 ):输出逐渐变大的文字及根据用户输入的边数绘制多边形

为了让博友们加深对 turtle 库的印象以及能更加灵活地运用 turtle 库,故按照博主之前编写关于 turtle 文章顺序设置实战任务。如果没有看过博主之前文章的小伙伴们,可以点击以下链接进行学习观看,理论 + 实践才能成长得更快,加油。

  1. 全网最细海龟 (turtle) 画图讲解 (一):初探海龟绘图
  2. 全网最细海龟 (turtle) 画图讲解 (二):窗口控制
  3. 全网最细海龟 (turtle) 画图讲解 (三):设置画笔样式
  4. 全网最细海龟 (turtle) 画图讲解 (四):绘制图形
  5. 全网最细海龟 (turtle) 画图讲解 (五):输入/输出文字及鼠标与键盘交互设计

1. 输出逐渐变大的文字

在海龟绘图中,默认文字是同样大小并且一次性地输出到屏幕上。本任务要求将一行自己喜欢的文字一个一个地进行输出,并且逐渐变大。例如,输出 唯有行动才能改造命运,效果如下图所示。
考察知识点:turtle 模块输出文字的应用
参考学习文章: 全网最细海龟 (turtle) 画图讲解 (五):输入/输出文字及鼠标与键盘交互设计

示例代码如下:

# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:8.输出逐渐变大的文字.py
@time:2021/01/04
"""
import turtle  # 导入海龟绘图模块

out_str = '唯有行动才能改造命运'
turtle.color('green')
turtle.penup()
turtle.back(300)  # 向前后退300像素
turtle.pendown()
for index, i in enumerate(out_str):  # 循环输出文字
    # print(index, i)  0 唯,1 有,2 行.....
    turtle.write(i, True, font=('宋体', 12 + index * index, 'normal'))  # 输出每个文字
turtle.done()  # 海龟绘图程序的结束语句

2. 根据用户输入的边数绘制多边形

本任务要求:通过输入对话框让用户输入一个数值作为要绘制多边形的边数,从而实现绘制指定边数的多边形。例如,用户在弹出的数字输入对话框中,输入6,则绘制一个六边形,如下图所示。
考察知识点:turtle 模块输入文字 + 绘制图形的应用
参考学习文章: 全网最细海龟 (turtle) 画图讲解 (五):输入/输出文字及鼠标与键盘交互设计

示例代码如下:

# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:9.根据用户输入的边数绘制多边形.py
@time:2021/01/04
"""

import turtle  # 导入海龟绘图模块

num = turtle.numinput('系统提示', '输入多边形的边数:')
turtle.color('orange')
for i in range(int(num)):
    turtle.forward(100)  # 边长
    turtle.left(180 - (num - 2) * 180 / num)  # 旋转角度

3. 通过←、→、↑、↓键控制海龟的移动

在游戏中,通过按下键盘上的 ←、→、↑、↓ 键来控制精灵移动。本任务要求实现按下 ←、→、↑、↓ 键控制海龟移动,例如,按下 ↑ 键海龟头朝上同时一直向前移动,按下 ← 键海龟头朝左同时一直向左移动。
参考学习文章: 全网最细海龟 (turtle) 画图讲解 (五):输入/输出文字及鼠标与键盘交互设计
在这里插入图片描述
在这里插入图片描述
示例代码如下:

# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:10.通过方向键控制海龟移动.py
@time:2021/01/04
"""

import turtle  # 导入海龟绘图模块


def up_move():  # 朝上
    turtle.setheading(90)
    turtle.forward(2)  # 向前移动2像素


def down_move():  # 朝下
    turtle.setheading(270)
    turtle.forward(2)  # 向前移动2像素


def left_move():  # 朝左
    turtle.setheading(180)
    turtle.forward(2)  # 向前移动2像素


def right_move():  # 朝右
    turtle.setheading(0)
    turtle.forward(2)  # 向前移动2像素


turtle.listen()  # 让海龟屏幕(TurtleScreen)获得焦点
turtle.shape('turtle')  # 设置海龟光标形状
turtle.penup()  # 抬笔
turtle.onkeypress(up_move, 'Up')  # 按下向上方向
turtle.onkeypress(down_move, 'Down')  # 按下向下方向
turtle.onkeypress(left_move, 'Left')  # 按下向左方向
turtle.onkeypress(right_move, 'Right')  # 按下向右方向
turtle.done()  # 海龟绘图程序的结束语句(开始主循环)

4. 追逐鼠标的红点

本任务要求编写一段 Python 代码,将画笔形状设置为圆点,画笔颜色为红色,然后实现单击屏幕时光标移动到点击位置,同时在原位置和新位置之间画一条线,再次单击,则继续画线,如下图所示。当单击鼠标右键时清空屏幕,光标位置不动。
参考学习文章: 全网最细海龟 (turtle) 画图讲解 (五):输入/输出文字及鼠标与键盘交互设计

示例代码如下:

# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:11.追逐鼠标的红点.py
@time:2021/01/04
"""

import turtle  # 导入海龟绘图模块

turtle.shape('circle')  # 画笔形状为圆点
turtle.color('red')  # 画笔颜色为红色


def funclicklt(x, y):  # 绘制线条
    turtle.goto(x, y)


def funclickrt(x, y):
    turtle.clear()  # 清空屏幕


turtle.onscreenclick(funclicklt, 1)  # 按下鼠标左键
turtle.onscreenclick(funclickrt, 3)  # 按下鼠标右键
turtle.done()  # 海龟绘图程序的结束语句(开始主循环)

至此今天的案例就到此结束了,笔者在这里声明,笔者写文章只是为了学习交流,以及让更多学习 Python 基础的读者少走一些弯路,节省时间,并不用做其他用途,如有侵权,联系博主删除即可。感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!


在这里插入图片描述

    好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
    如果我的博客对你有帮助、如果你喜欢我的博客内容,请 点赞评论收藏 一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
 编码不易,大家的支持就是我坚持下去的动力。点赞后不要忘了 关注 我哦!

猜你喜欢

转载自blog.csdn.net/xw1680/article/details/112201746