python之turtle库学习(海龟图形)

python之turtle库学习
这两天在一个公众号里看到一个文章好玩的库,今天来学习一下。Github地址

一。方法

1.forward() | fd():向前移动指定的距离。参数:一个数字(integer or float))。turtle.forward(25)2.backward() | bk() | back():向后移动指定的距离。参数:一个数字(integer or float))。turtle.backward(30)3..right() | rt():以角度单位向右转动。参数:一个数字(integer or float))。单位默认为度数,可以通过degrees()和radians()进行设置。turtle.right(45) 4.left() | lt():以角度单位向左转动。参数:一个数字(integer or float))。单位默认为度数,可以通过degrees()和radians()进行设置。turtle.left(45) 5.goto() | steps() | setposition():移动到绝对位置,如果笔落下,画线,不改变方向。参数:x-一个数字或一对数字。y-一个数字或None。turtle.setpos(60,30)#60.00,30.00)6.setx():设置第一个坐标的值即X方向。参数:一个数字(integer or float))。turtle.setx(10)#(10.00,0.00)7.sety():设置第二个坐标的值即Y方向。参数:一个数字(integer or float))。turtle.sety(10)#(0.00,10.00)8.setheading() | seth(): 将方向设置为to_angle.就是东西南北方向。具体如下:标准模式:0 - 东 90 - 北 180 - 西 270 - 南 标志模式 0- 北 90- 东 180- 南 270 - 西turtle.setheading(90)9.home() : 移动到原点 - 坐标(0,0):并将其标题设置为其起始方向(取决于模式)。turtle.home()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

(0.00,0.00)

10.circle():绘制一个给定半径的圆。参数:radius-一个数字(半径,如果值为正则逆时针,负数为顺时针),extent-一个数字()steps- 执行的步数。turtle.circle(120,180,5)11.dot() :用颜色画出一个直径大小的圆点。参数:size-一个大于1的整数,可None。默认用的是pensize+4和2*pensize的最大值,color-颜色值turtle.dot(20, 'blue')12.stamp():将当前位置上的形状复制到画布上返回stamp_id.可以调用,可以删除。turtle.stamp()13.clearstamp():删除stamp()返回来的值。参数:stampid。 14.clearstamps():删除全部stamp()的值。参数:stampid。15.undo():撤销最后的动作。16.speed():将速度设置为0..10范围内整数。如果没有参数,则返回当前速度。如果大于10或者小于0.5,则速度设置为0 。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
“最快”:0 :直接成图,没有动画效果“快”:10:大概一秒“正常”:6:“慢”:3“最慢”:117:position() | pos(): 返回当前的位置。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
turtle.pos()# (0.00,0.00)18.towards(): 返回当前位置同指定位置之间的角度。参数:x-一个数字或一对数字或一个实例的向量,y-如果x是数字,则为数字,否则为None。turtle.goto(10,10)tw = turtle.towards(0,0)print(tw)# 22519.xcor():返回x坐标。     ycor():返回y坐标。20.heading(): 返回当前的方向值。21.distance():返回x,y两个点的直线距离22.degrees():设置一整圈的度数。默认是360度。23.radians():将角度测量单位设置为弧度。相当于 degrees(2*math.pi)24.pendown() | pd() | down():放下笔,移动的时候绘图。25.penup() | pu() | up():将提起笔,移动时无图。26.pensize():设置线条的粗细。参数:width-一个正数27.pen():使用键值对设置笔的属性: “shown”: True/False“pendown”: True/False“pencolor”: 颜色字符串或者颜色值“fillcolor”: 颜色字符串或者颜色值“pensize”: 正数“speed”: 速度范围为0..10的数字“resizemode”: “auto” or “user” or “noresize”“stretchfactor”: (positive number, positive number)“outline”: 正数“tilt”: 正数 28.isdown():如果笔停止返回True,反之False29.pencolor():设置笔的颜色。30.fillcolor():笔的填充色。31.color():同时设置pencolor和fillcolor32.filling():返回fillstate状态,如果填充则返回True,反之False。33.begin_fill():在绘制要填充的形状前调用。当然在调用完还需要end_fill()。34.reset():重置,将屏幕中的图纸删除,重新居中并将所有变量设置为默认值。35.clear():删除图纸。对属性不做操作。36.write():写文本。参数:arg-要写入的对象。move-是否移动。align-对齐方式:left,right,center。font-字体。fontname,fontsize,fonttype。37.hideturtle() | ht() :删隐藏乌龟的形状,在做复杂绘图的时候隐藏的时候有利于提高绘图速度。38.showturtle() | st():显示乌龟的形状。39.isvisible():乌龟是否可见。如果可见返回True,反之则False。40.shape():设置乌龟的图形形状,取值:“arrow”, “turtle”, “circle”, “square”, “triangle”, “classic” 41.isvisible():乌龟是否可见。如果可见返回True,反之则False。42.resizemode():参数:rmode取值:'auto','user','noresize'.43.shapesize() | turtlesize() : 返回笔的属性。44.shearfactor(): 设置或者返回但钱的剪切因子。45.tilt():旋转由turtle shape角度从当前的倾斜角度。46.settiltangle():无论当前的倾斜角度如何,旋转乌龟指向 angle 指定的方向。参数:angle -数字。已弃用47.tiltangle():设置或者返回当前的倾斜角度。参数:angle - 数字48.shapetransform():设置或返回乌龟的形状的当前转换矩阵。49.get_shapepoly():返回当前形状的坐标。50.onclick():鼠标点击事件。参数:fun-一个带有两个参数的函数,这些参数将与画布上单击点的坐标一个调用。num-鼠标按钮的数量,默认为1(左键)。add- True的时候将添加新的绑定。否则替换以前的绑定。51.onrelease():鼠标释放事件。参数同点击事件。52.ondrag():鼠标移动事件。参数同点击事件。53.begin_poly(): 开始记录多边形的顶点。54.end_poly():停止记录多边形的顶点。55.get_poly():返回最后记录的多边形。56.clone():创建并返回具有相同位置等等属性的乌龟克隆。57.getturtle() | getpen() :获取trutle对象本身。58.getscreen():返回正在绘制的对象。59.setundobuffer(): 设置或禁用中断器。参数: size-整数。如果大小是None,则禁用缓冲区。60.undobufferentries():返回undobuffer中的条目数。61.bgcolor():设置或者返回当前的TurtleScreen的背景颜色。62.bgpic():设置背景图片。参数: picname-文件名。62.delay(): 设置或返回以毫秒为单位的绘制延迟,延迟越大,绘图越慢。63.ontimer():定时器。64.mainloop() | done() :开始循环 。65.textinput() | numinput():弹出一个输入字符串和数字的窗口。66.mode(): 三种方式:“standard”, “logo” or “world”
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123

二。实例:画个时钟。

# coding=utf-8 import turtlefrom datetime import * # 抬起画笔,向前运动一段距离放下def Skip(step): turtle.penup() turtle.forward(step) turtle.pendown() def mkHand(name, length): # 注册Turtle形状,建立表针Turtle turtle.reset() Skip(-length * 0.1) # 开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。 turtle.begin_poly() turtle.forward(length * 1.1) # 停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。 turtle.end_poly() # 返回最后记录的多边形。 handForm = turtle.get_poly() turtle.register_shape(name, handForm) def Init(): global secHand, minHand, hurHand, printer # 重置Turtle指向北 turtle.mode('logo') # 建立三个表针Turtle并初始化 mkHand('secHand', 135) mkHand('minHand', 125) mkHand('hurHand', 90) secHand = turtle.Turtle() secHand.shape('secHand') minHand = turtle.Turtle() minHand.shape('minHand') hurHand = turtle.Turtle() hurHand.shape('hurHand') for hand in secHand, minHand, hurHand: hand.shapesize(1, 1, 3) hand.speed(0) # 建立输出文字Turtle printer = turtle.Turtle() # 隐藏画笔的turtle形状 printer.hideturtle() printer.penup() def SetupClock(radius): # 建立表的外框 turtle.reset() turtle.pensize(7) turtle.pencolor('#ff5500') turtle.fillcolor('green') for i in range(60): Skip(radius) if i % 5 == 0: turtle.forward(20) Skip(-radius - 20) Skip(radius + 20) if i == 0: turtle.write(int(12), align='center', font=('Courier', 14, 'bold')) elif i == 30: Skip(25) turtle.write(int(i / 5), align='center', font=('Courier', 14, 'bold')) Skip(-25) elif (i == 25 or i == 35): Skip(20) turtle.write(int(i / 5), align='center', font=('Courier', 14, 'bold')) Skip(-20) else: turtle.write(int(i / 5), align='center', font=('Courier', 14, 'bold')) Skip(-radius - 20) else: turtle.dot(5) Skip(-radius) turtle.right(6) def Week(t): week = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'] return week[t.weekday()] def Date(t): y = t.year m = t.month d = t.day return '%s-%d-%d' % (y, m, d) def Tick(): # 绘制表针的动态显示 t = datetime.today() second = t.second + t.microsecond * 0.000001 minute = t.minute + second / 60.0 hour = t.hour + minute / 60.0 secHand.setheading(6 * second) minHand.setheading(6 * minute) hurHand.setheading(30 * hour) turtle.tracer(False) printer.forward(65) printer.write(Week(t), align='center', font=('Courier', 14, 'bold')) printer.back(130) printer.write(Date(t), align='center', font=('Courier', 14, 'bold')) printer.home() turtle.tracer(True) # 100ms后继续调用tick turtle.ontimer(Tick, 100) def main(): # 打开/关闭龟动画,并为更新图纸设置延迟。 turtle.tracer(False) Init() SetupClock(160) turtle.tracer(True) Tick() turtle.mainloop() if __name__ == '__main__': main()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
(0)

相关推荐

  • Python 小技之繁花盛开

    来源:Python 技术「ID: pythonall」 今天请各位读者朋友欣赏用 Python 实现的鲜花盛宴,你准备好了吗?90 行代码即可实现一棵美丽的鲜花盛开树.小编也是鲜花爱护协会者之一,但是 ...

  • 用 Python 画动态时钟

    来源:Python 技术「ID: pythonall」 时钟是我们日常生活中最常见的也是必不可少的东西,你有没有想过用 Python 来画一个实时动态的时钟呢?下面我们来看看如何使用简单的代码实现一个 ...

  • 用 Python 画一个捂脸表情

    来源:Python 技术「ID: pythonall」 微信中的捂脸表情相信大家都不陌生,我见过以及自己使用这个表情的频率都是比较高的,可以说这个表情算是大部分人的主打表情之一了,本文我使用 Pyth ...

  • Python之绘制多角星

    引言 在具备一定的Python编程基础以后,我们可以结合for循环进行多角星的编写,只要简单的几次循环,即可以极大的解决重复编写相同代码方面的问题,下面小编将以三角星.五角星为例,进而引入如何绘制多角 ...

  • 用 Python 画哆啦 A 梦

    来源:Python 技术「ID: pythonall」 相信大家童年的时候都看过哆啦 A 梦,他的口袋简直是无所不能,里面装满了各种神奇的道具.曾经的我也幻想过如果自己也有一个这样的口袋多好.今天我们 ...

  • 趣玩 Python 之绘制基本图形

    Python中的类库极其丰富,数据科学中经常会用到可视化技术.今天我们来一学习一下Python中基本图形的绘制方法,本文我们将主要基于turtle(小乌龟)库来画图~ 为了方便后面进行交互性演示,这里 ...

  • Python绘图Turtle库详解

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

  • 深度盘点 | 史上最全python数据可视化库

    有多少同学和小编一样,学习python的主要目的,是为了实现数据可视化?

  • 神奇的 Python 图片处理库:exifread

    [导语]:用 python 怎样获得图片的GPS信息?今天推荐一下 exifread 这个神奇的库,不仅仅是 GPS 信息,几乎能能获得图片的所有信息,快进来看看!! 要怎样获得拍摄图片的GPS呢?这 ...

  • Python常用的库简单介绍

    Python常用的库简单介绍一下 fuzzywuzzy ,字符串模糊匹配.   esmre ,正则表达式的加速器.   colorama 主要用来给文本添加各种颜色,并且非常简单易用.   Prett ...

  • 可能是全网最完整的 Python 操作 Excel库总结!

    在之前的办公自动化系列文章中,我已经对Python操作Excel的几个常用库openpyxl.xlrd/xlwt.xlwings.xlsxwriter等进行了详细的讲解. 为了进一步带大家了解各个库的 ...

  • Python利用xlwings库读写excel常用操作:range对象 | o郭二爷o

    前面两节介绍xlwings操作book对象.sheet对象的一些常用操作,本节来介绍xlwings对range对象的一些操作,也是使用最频繁的操作.我们对excel读写都是基于具体的单元格区域进行的, ...

  • 小学几何学习小学图形与几何是重要的一个版...

    小学几何学习 小学图形与几何是重要的一个版块组成,单纯课内来讲,确实讲得比较浅,培优方法不对就陷入套路刷题模式,王老师认为就像应用题题感一样,几何题目也要拓展,增强"形感". 几何 ...

  • 10本 Python 零基础入门学习书籍推荐

    Python 是一款解释型.面向对象.动态数据类型的高级程序设计语言.语法简捷清晰,具有丰富和强大的类库,因而在各种行业中得到广泛的应用.对于初学者来讲,Python 是一款既容易学又相当有用的编程语 ...

  • Python常用数据分析库有哪些?五大类介绍

    众所周知,Python前景好.需求量大.薪资高.就业岗位多,除了基本的开发工作之外,还可以从事人工智能.数据分析.网络爬虫等岗位.那么说起数据分析,你知道Python常用数据分析库有哪些吗?我们一起来 ...