python之turtle海龟绘图篇[通俗易懂]

python之turtle海龟绘图篇[通俗易懂]海龟绘图,想什么,画什么:七段数码管、谢尔帕斯基三角形、玫瑰花和小猪佩奇都不是问题

大家好,又见面了,我是你们的朋友全栈君。

海龟绘图

python2.6版本中后引入的一个简单的绘图工具,叫做海龟绘图(Turtle Graphics),出现在1966年的Logo计算机语言。
海龟绘图(turtle库)是python的内部模块,使用前导入即可 import turtle
海龟有3个关键属性:方向、位置和画笔(笔的属性有色彩、宽度和开/关状态)
在这里插入图片描述

1. 画布(canvas)

画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置
设置画布大小:

turtle.screensize(canvwidth=None, canvheight=None, bg=None)

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

2. 画笔

使用Pen()设定海龟画图对象,即画笔:turtle.Pen()
在这里插入图片描述
代码执行后就建立了画布,同时屏幕中间可以看见箭头(arrow),即所谓的海龟
在海龟绘图中,海龟的起点即画布中央为 (0,0),移动单位是像素 (pixel)
描述海龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中, 就是使用位置方向描述海龟(画笔)的状态

3.绘图命令

操纵海龟绘图有着许多的命令,这些命令可以划分为3种

  • 画笔运动命令
  • 画笔控制命令
  • 全局控制命令
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

部分命令详解:

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

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

turtle.setheading(angle) 别名:turtle.seth(angle) 改变行进方向,angle指行进方向的绝对角度,只改变方向但不行进
turtle.goto(x,y): 空间坐标体系(绝对坐标)
turtle.done(): 用来停止画笔绘制,但绘图窗体不关闭

4.绘图举例

绘制正方形:每输入一条指令,都可以看到海龟前进绘图和转向
在这里插入图片描述
绘制太阳花:
在这里插入图片描述绘制分形树:
在这里插入图片描述

绘制趣图:
在这里插入图片描述
在这里插入图片描述
绘制五角星:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
绘制小蟒蛇:
在这里插入图片描述
在这里插入图片描述绘制科赫曲线及科赫雪花:
在这里插入图片描述在这里插入图片描述

#绘制科赫雪花
import turtle
def koch(size,n):
    if n == 0:
        turtle.fd(size)
    else:
        for angle in [0,60,-120,60]:
            turtle.left(angle)
            koch(size/3,n-1)
def main():
    turtle.setup(600,600)
    turtle.penup()
    turtle.goto(-200,100)
    turtle.pendown()
    turtle.pensize(2)
    level = 3     #3阶科赫雪花,阶数
    koch(400,level)
    turtle.right(120)
    koch(400,level)
    turtle.right(120)
    koch(400,level)
    turtle.hideturtle()
    turtle.done()
main()

绘制七段数码管:
在这里插入图片描述在这里插入图片描述
绘制谢尔帕斯基三角形:
在这里插入图片描述
绘制玫瑰花:
在这里插入图片描述
绘制小猪佩奇:
在这里插入图片描述
最后几个绘图代码相对较长,可微信扫下图二维码或直接搜索”suoyue_zhan“关注公众号并于后台回复“海龟绘图”即可获取七段数码管、谢尔帕斯基三角形、玫瑰花和小猪佩奇等的源码
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154118.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 虚拟机的光盘映像文件需要下载吗_防止vmware虚拟机被检测到

    虚拟机的光盘映像文件需要下载吗_防止vmware虚拟机被检测到在百度经验中找到了解决办法,链接如下https://jingyan.baidu.com/article/25648fc18248a99191fd00fb.html

    2022年8月2日
    7
  • Scapy的介绍(一)「建议收藏」

    Scapy的介绍(一)「建议收藏」介绍关于Scapy的Scapy是一个Python程序,使用户能够发送,嗅探和剖析并伪造网络数据包。此功能允许构建可以探测,扫描或攻击网络的工具。换句话说,Scapy是一个功能强大的交互式数据包操作程序。它能够伪造或解码大量协议的数据包,通过线路发送,捕获它们,匹配请求和回复等等。Scapy可以轻松处理大多数经典任务,如扫描,跟踪路由,探测,单元测试,攻击或网络发现。它可以取代hping…

    2022年4月19日
    31
  • nohup命令详解[通俗易懂]

    nohup命令详解[通俗易懂]nohup命令详解

    2022年4月24日
    38
  • 一小时搞定简单VBA编程 Excel宏编程快速上手

    一小时搞定简单VBA编程 Excel宏编程快速上手Excel宏编程可以快速完成批量表格操作:复制粘贴、数据过滤等,宏代码基于VB语言实现,有基础的编程经验就能快速阅读。下面是我的学习笔记。1.ExcelVBA编辑界面(进入路径:sheet名称–>鼠标右键菜单–>查看代码)2.输入代码方法:在VBE编辑器的代码模块中输入VBA代码,通常有以下几种方法:■手工键盘输入;■使用宏录制器,即选择菜单“工具—…

    2022年6月6日
    44
  • 防火墙OPNsense安装「建议收藏」

    防火墙OPNsense安装0.前言下载链接:https://opnsense.org/download/下载镜像,安装到虚拟机里。1.安装配置要求,需要两个网络适配器,一个外网,一个内网(也就是一个局域网,一个广域网)启动后,让页面自启,等到有倒计时的页面时,有5秒的倒计时自动检测,这里不要自动检测,直接回车对广域网wan和局域网lan进行命名wan:le0lan:le1OPNsense进入了LiveDemo模式,这时如果你用root登陆,所有的功能都支持,但所有的存储

    2022年4月5日
    57
  • 由3个a,5个b,2个c构成的所有字符串_如何计算A且B的概率

    由3个a,5个b,2个c构成的所有字符串_如何计算A且B的概率7-3 A-B 本题要求你计算A−B。不过麻烦的是,A和B都是字符串 ——即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。输入格式: 输入在2行中先后给出字符串A和B。两字符串的长度都不超过10 ​4 ​​,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。输出格式: 在一行中打印出A−B的结果字符串。输入样例: I love …

    2022年8月18日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号