Python标准库〖 turtle 〗

  • 1. 简介
  • 2. 基础知识
    • 2.1 画布(canvas)
    • 2.2 画笔
      • 2.2.1 画笔的状态
      • 2.2.2 画笔的属性
      • 2.2.3 绘图命令
      • 2.2.3.1 运行命令
      • 2.2.3.2 控制命令
      • 2.2.3.3 全局控制命令
      • 2.2.3.4 其它命令
  • 3. 命令详解
  • 3. 常见案例

1. 简介

Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个动物,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。

2. 基础知识

2.1 画布(canvas)

画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小初始位置
turtle.screensize() #返回默认大小(400, 300)

命令 说明 案例
turtle.screensize(canvwidth=None, canvheight=None, bg=None) 设置画布大小, 参数分别为画布的宽(单位像素), 高, 背景颜色。 turtle.screensize(800,600, “green”)
turtle.setup(width=0.5, height=0.75, startx=None, starty=None) 参数:width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例,(startx, starty): 这一坐标表示矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心。 turtle.setup(width=0.6,height=0.6), turtle.setup(width=800,height=800, startx=100, starty=100)

2.2 画笔

2.2.1 画笔的状态

在画布上,默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方向小兔子。这里我们描述小兔子时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中,就是使用位置方向描述小兔子(画笔)的状态。

2.2.2 画笔的属性

画笔(画笔的属性,颜色、画线的宽度等)

  • turtle.pensize():设置画笔的宽度
  • turtle.pencolor():没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", “red”,也可以是RGB 3元组。
  • turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。

2.2.3 绘图命令

操纵兔子绘图有着许多的命令,这些命令可以划分为3种:一种为运动命令,一种为画笔控制命令,还有一种是全局控制命令

2.2.3.1 运行命令

命令 说明
turtle.forward(distance) 向当前画笔方向移动distance像素长度
turtle.backward(distance) 向当前画笔相反方向移动distance像素长度
turtle.right(degree) 顺时针移动degree°
turtle.left(degree) 逆时针移动degree°
turtle.pendown() 移动时绘制图形,缺省时也为绘制
turtle.goto(x,y) 将画笔移动到坐标为x,y的位置
turtle.penup() 提起笔移动,不绘制图形,用于另起一个地方绘制
turtle.circle() 画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆
setx( ) 将当前x轴移动到指定位置
sety( ) 将当前y轴移动到指定位置
setheading(angle) 设置当前朝向为angle角度
home() 设置当前画笔位置为原点,朝向东。
dot(d) 绘制一个指定直径和颜色的圆点

2.2.3.2 控制命令

命令 说明
turtle.fillcolor(colorstring) 绘制图形的填充颜色
turtle.color(color1, color2) 同时设置pencolor=color1, fillcolor=color2
turtle.filling() 返回当前是否在填充状态
turtle.begin_fill() 准备开始填充图形
turtle.end_fill() 填充完成
turtle.hideturtle() 隐藏画笔的turtle形状
turtle.showturtle() 显示画笔的turtle形状

2.2.3.3 全局控制命令

命令 说明
turtle.clear() 清空turtle窗口,但是turtle的位置和状态不会改变
turtle.reset() 清空窗口,重置turtle状态为起始状态
turtle.undo() 撤销上一个turtle动作
turtle.isvisible() 返回当前turtle是否可见
stamp() 复制当前图形
turtle.write(s [,font=("font-name",font_size,"font_type")]) 写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项

2.2.3.4 其它命令

命令 说明
turtle.mainloop()turtle.done() 启动事件循环 -调用Tkinter的mainloop函数。必须是兔子图形程序中的最后一个语句。
turtle.mode(mode=None) 设置兔子模式(“standard”,“logo”或“world”)并执行重置。如果没有给出模式,则返回当前模式。
turtle.delay(delay=None) 设置或返回以毫秒为单位的绘图延迟。
turtle.begin_poly() 开始记录多边形的顶点。当前的兔子位置是多边形的第一个顶点。
turtle.end_poly() 停止记录多边形的顶点。当前的兔子位置是多边形的最后一个顶点。将与第一个顶点相连.
turtle.get_poly() 返回最后记录的多边形。

3. 命令详解

turtle.circle(radius, extent=None, steps=None)

描述:以给定半径画圆参数:radius(半径):半径为正(负),表示圆心在画笔的左边(右边)画圆;extent(弧度) (optional);steps (optional) (做半径为radius的圆的内切正多边形,多边形边数为steps)。

举例:

 circle(50) # 整圆;circle(50,steps=3) # 三角形;circle(120, 180) # 半圆

3. 常见案例

  1. 参照代码模板完善代码,实现下述功能,不得修改其它代码。使用 turtle 库的 turtle.circle() 函数和 turtle.seth() 函数绘制同心圆套圈,最小的圆圈半径为 10 像素,不同圆圈之间的半径差是 40 像素,效果如下图所示。

    import turtler = 10
    dr = 40
    head = 90
    for i  in range (4):# 放下画笔, 绘制图形turtle.pendown()# 画r为半径的圆形turtle.circle(r) r +=  dr# 抬起画笔,不绘制图形turtle.penup()# 顺时针旋转90度: turtle.right(head) / turtle.seth(-head)turtle.right(head) / turtle.seth(-head) # 移动40个像素点: turtle.forward(dr) / turtle.fd(dr)turtle.forward(dr) # 逆时针旋转90度: turtle.left(head) / turtle.seth(0)turtle.left(head)turtle.done()
    
  2. 五角星

    
    import turtleturtle.pensize(5) # 设置画笔大小
    turtle.pencolor("yellow") # 设置画笔颜色
    turtle.fillcolor("red") # 设置填充颜色turtle.begin_fill() # 开始填充
    for i in range(5):turtle.forward(200) # 移动200个像素点turtle.right(144) # 顺时针旋转144度
    turtle.end_fill()  # 结束填充turtle.mainloop()
    
  3. 太极

    import turtleturtle.pensize(1)
    turtle.pencolor("black")R = 100
    color = {-1: 'white', 1: 'black'}for c in [-1, 1]:# 获取填充颜色turtle.fillcolor(color.get(c))# 开始填充颜色turtle.begin_fill()# 鲜花一半的轮廓turtle.circle(R / 2, 180)turtle.circle(R, 180)turtle.circle(R / 2, -180)# 结束填充颜色turtle.end_fill()# 抬起画笔turtle.penup()# 移动画笔到坐标(0, -(R / 3 * c))的位置turtle.goto(0, -(R / 3 * c))# 放下画笔turtle.pendown()# 获取填充颜色turtle.fillcolor(color.get(-c))# 准备填充turtle.begin_fill()# 画圆turtle.circle(-R / 6, 360)# 结束填充turtle.end_fill()# 抬起画笔turtle.penup()# 将画笔移动的坐标(0, 0)的坐标turtle.goto(0, 0)# 放下画笔turtle.pendown()turtle.done()
    
  4. 奥运五环

    import turtlep = turtle
    p.pensize(3)
    p.color("blue")
    p.circle(30, 360)
    p.pu()
    p.goto(60, 0)
    p.pd()
    p.color("black")
    p.circle(30, 360)
    p.pu()
    p.goto(120, 0)
    p.pd()
    p.color("red")
    p.circle(30, 360)
    p.pu()
    p.goto(90, -30)
    p.pd()
    p.color("green")
    p.circle(30, 360)
    p.pu()
    p.goto(30, -30)
    p.pd()
    p.color("yellow")
    p.circle(30, 360)
    p.done()
    
  5. 使用turtle 库的turtle.fd()函数和turtle.left()函数绘制一个边长为200像素的正方形及一个紧挨四个顶点的圆形,写入代码替换模板中的横线,不得修改其他代码,效果如图

    import turtleturtle.pensize(2) #设置画笔大小# 画正方形
    for i in range(4):turtle.fd(200)turtle.left(90)
    # 画圆
    turtle.left(-45)
    turtle.circle(100*pow(2, 0.5))turtle.done()
    

Python标准库〖 turtle 〗相关推荐

  1. 用Python标准库turtle画一只老虎,祝您新年虎虎生威,大吉大利

    用Python标准库turtle画一只老虎,祝您新年虎虎生威,大吉大利! 虎年到了,祝大家新年虎虎生威!大吉大利! 去年我用Python画了一头金牛,参考:https://blog.csdn.net/ ...

  2. 用Python标准库turtle画一头金牛,祝您新年牛气冲天!

    用Python标准库turtle画一头金牛,祝您新年牛气冲天! 今年是牛年,祝大家新年牛气冲天!嗨皮牛Year! 前几天在百度图片里下载了一张金牛的图片,就是上面的这张.想着用Python标准库tur ...

  3. 用Python标准库turtle画一头金牛,祝您新年牛气冲天!(附源码)

    今年是牛年,祝大家新年牛气冲天!嗨皮牛Year! 前几天在百度图片里下载了一张金牛的图片,就是封面的这张.想着用Python标准库turtle肯定可以画出这张图,所以说干就干,花两天时间实现了. 画图 ...

  4. 用Python标准库turtle画一只老虎,祝您新年虎虎生威,大吉大利!

    大家好,我是辰哥~ 点击下方名片关注和星标『Python研究者』!

  5. Python标准库:turtle库的简单快速入门

    在计算机二级Python的计算生态(其实也就是库)考察中,可以分为两大类:标准库和第三方库. 而标准库中明确要求掌握的就是turtle库和random库,第三方库大都是掌握其在各个常用领域的一些主流库 ...

  6. Python标准库介绍

    1. 关于Python标准库 众所周知,Python是一个依赖强大的组件库完成对应功能的语言,为了便捷实现各项功能,前辈大牛们打造了多种多样的工具库公开提供给大众使用,而越来越多的库已经因为使用的广泛 ...

  7. python语言程序设计 梁勇_计算机二级教程 Python语言程序设计,第9章Python标准库概览...

    第九章学习知识导图 考点主要是: 1) 标准库: turtle库(必选) 2) 标准库: random库(必选).time库(可选) 3) 作者归纳:这章考大题和选择题的读程序题,本章结束,pytho ...

  8. 转--Python标准库之一句话概括

    作者原文链接 想掌握Python标准库,读它的官方文档很重要.本文并非此文档的复制版,而是对每一个库的一句话概括以及它的主要函数,由此用什么库心里就会有数了. 文本处理 string: 提供了字符集: ...

  9. python标准库random中函数的作用_Python随机函数库random的使用方法详解

    Python随机函数库random的使用方法详解 前言 众所周知,python拥有丰富的内置库,还支持众多的第三方库,被称为胶水语言,随机函数库random,就是python自带的标准库,他的用法极为 ...

最新文章

  1. HR与HRBP的区别
  2. 无密码进去mysql_技术分享 | 安全地无密码登录 MySQL
  3. android input 点击事件失效,在textinputedittext android上不会触发onclick事件
  4. dom4j生成、解析xml
  5. poj 3459(背包问题)
  6. BFS HDOJ 2102 A计划
  7. 深度学习-吴恩达-笔记-3-浅层神经网络
  8. 一家世界500强企业为什么还要做不赚钱的生意?
  9. HTML !DOCTYPE 声明详解
  10. 《Windows程序设计》学习笔记(chap10菜单及其它资源)(一)
  11. 强烈推荐7个国外图片资源网站
  12. linux常用网络命令笔记
  13. 第九周上机项目3:个人所得税计算器
  14. uni-app实现扫码功能
  15. 【JavaWeb】Servlet系列——HttpServletRequest接口详解
  16. Js根据拼音首字母分组
  17. 解决MATLAB2018b打开m文件后注释乱码的问题
  18. 手机dpi修改工具_手机dpi修改器app下载-手机dpi修改工具官方版 v1.0_5577安卓网
  19. 全球及中国胶粘剂和密封胶基材行业产销现状与运营前景预测报告2022版
  20. 我的世界服务器java启动脚本_我的世界服务器开服bat文件分享 常见脚本

热门文章

  1. 【数学】极限-夹逼定理,重要极限sinx/x的证明
  2. java计算机毕业设计汽车客运站票务管理系统源码+程序+lw文档+mysql数据库
  3. RFSoC应用笔记 - RF数据转换器 -01- 概述和IP接口介绍
  4. “QQ找茬”游戏的识别小软件JAVA源码
  5. android字节流压缩,Android代码压缩工具R8详解 android.enableR8=true
  6. 学习笔记(Deep Learning for Feynman’s Path Integral in Strong-Field Time-Dependent Dynamics)
  7. 天空机器人 联动存档_FC天空机器人经典版
  8. 网络篇 OSPF的默认路由-53
  9. 201208-PyTorch求解矩阵正交基
  10. BMC 历史漏洞汇总