精华内容
下载资源
问答
  • turtle的介绍Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径...

    turtle的介绍

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

    turtle绘图的基础知识

    1. 画布(canvas)

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

    我们可以通过turtle.setup(width=0.5, height=0.75, startx=None, starty=None)

    方法来设置画布的大小。

    参数:width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例,(startx, starty): 这一坐标表示矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心。

    2. 画笔

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

    2.1 画笔的属性

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

    turtle.pensize():设置画笔的宽度;

    turtle.pencolor():没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", "red",也可以是RGB 3元组。

    turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。

    常用命令

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

    画笔运动命令

    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(r)

    画笔控制命令

    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形状

    全局控制命令

    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参数也是可选项

    有问题欢迎留言评论.有建议或者意见欢迎斧正 不胜感激

    有兴趣一起学习爬虫的小伙伴们记得加群: 657598389,会有许多的资源可以供大家学习分享,欢迎大家前来一起学习进步!

    展开全文
  • 直接可运行,然后仔细看.../usr/bin/env python3# -*- coding: utf-8 -*-# @Author: ai8py# @Date: 2019-06-11 13:15:37# @Env: python 3.6# @Github: https://www.qi8py.comimport turtledef getPosition(x, y):tur...

    直接可运行,然后仔细看看代码,自己敲一敲吧。

    pikaqiu.png

    # !/usr/bin/env python3

    # -*- coding: utf-8 -*-

    # @Author: ai8py

    # @Date: 2019-06-11 13:15:37

    # @Env: python 3.6

    # @Github: https://www.qi8py.com

    import turtle

    def getPosition(x, y):

    turtle.setx(x)

    turtle.sety(y)

    print(x, y)

    class Pikachu:

    def __init__(self):

    self.t = turtle.Turtle()

    t = self.t

    t.pensize(3)

    t.speed(9)

    t.ondrag(getPosition)

    def noTrace_goto(self, x, y):

    self.t.penup()

    self.t.goto(x, y)

    self.t.pendown()

    def leftEye(self, x, y):

    self.noTrace_goto(x, y)

    t = self.t

    t.seth(0)

    t.fillcolor('#333333')

    t.begin_fill()

    t.circle(22)

    t.end_fill()

    self.noTrace_goto(x, y + 10)

    t.fillcolor('#000000')

    t.begin_fill()

    t.circle(10)

    t.end_fill()

    self.noTrace_goto(x + 6, y + 22)

    t.fillcolor('#ffffff')

    t.begin_fill()

    t.circle(10)

    t.end_fill()

    def rightEye(self, x, y):

    self.noTrace_goto(x, y)

    t = self.t

    t.seth(0)

    t.fillcolor('#333333')

    t.begin_fill()

    t.circle(22)

    t.end_fill()

    self.noTrace_goto(x, y + 10)

    t.fillcolor('#000000')

    t.begin_fill()

    t.circle(10)

    t.end_fill()

    self.noTrace_goto(x - 6, y + 22)

    t.fillcolor('#ffffff')

    t.begin_fill()

    t.circle(10)

    t.end_fill()

    def mouth(self, x, y):

    self.noTrace_goto(x, y)

    t = self.t

    t.fillcolor('#88141D')

    t.begin_fill()

    # 下嘴唇

    l1 = []

    l2 = []

    t.seth(190)

    a = 0.7

    for i in range(28):

    a += 0.1

    t.right(3)

    t.fd(a)

    l1.append(t.position())

    self.noTrace_goto(x, y)

    t.seth(10)

    a = 0.7

    for i in range(28):

    a += 0.1

    t.left(3)

    t.fd(a)

    l2.append(t.position())

    # 上嘴唇

    t.seth(10)

    t.circle(50, 15)

    t.left(180)

    t.circle(-50, 15)

    t.circle(-50, 40)

    t.seth(233)

    t.circle(-50, 55)

    t.left(180)

    t.circle(50, 12.1)

    t.end_fill()

    # 舌头

    self.noTrace_goto(17, 54)

    t.fillcolor('#DD716F')

    t.begin_fill()

    t.seth(145)

    t.circle(40, 86)

    t.penup()

    for pos in reversed(l1[:20]):

    t.goto(pos[0], pos[1] + 1.5)

    for pos in l2[:20]:

    t.goto(pos[0], pos[1] + 1.5)

    t.pendown()

    t.end_fill()

    # 鼻子

    self.noTrace_goto(-17, 94)

    t.seth(8)

    t.fd(4)

    t.back(8)

    # 红脸颊

    def leftCheek(self, x, y):

    turtle.tracer(False)

    t = self.t

    self.noTrace_goto(x, y)

    t.seth(300)

    t.fillcolor('#DD4D28')

    t.begin_fill()

    a = 2.3

    for i in range(120):

    if 0 <= i < 30 or 60 <= i < 90:

    a -= 0.05

    t.lt(3)

    t.fd(a)

    else:

    a += 0.05

    t.lt(3)

    t.fd(a)

    t.end_fill()

    turtle.tracer(True)

    def rightCheek(self, x, y):

    t = self.t

    turtle.tracer(False)

    self.noTrace_goto(x, y)

    t.seth(60)

    t.fillcolor('#DD4D28')

    t.begin_fill()

    a = 2.3

    for i in range(120):

    if 0 <= i < 30 or 60 <= i < 90:

    a -= 0.05

    t.lt(3)

    t.fd(a)

    else:

    a += 0.05

    t.lt(3)

    t.fd(a)

    t.end_fill()

    turtle.tracer(True)

    def colorLeftEar(self, x, y):

    t = self.t

    self.noTrace_goto(x, y)

    t.fillcolor('#000000')

    t.begin_fill()

    t.seth(330)

    t.circle(100, 35)

    t.seth(219)

    t.circle(-300, 19)

    t.seth(110)

    t.circle(-30, 50)

    t.circle(-300, 10)

    t.end_fill()

    def colorRightEar(self, x, y):

    t = self.t

    self.noTrace_goto(x, y)

    t.fillcolor('#000000')

    t.begin_fill()

    t.seth(300)

    t.circle(-100, 30)

    t.seth(35)

    t.circle(300, 15)

    t.circle(30, 50)

    t.seth(190)

    t.circle(300, 17)

    t.end_fill()

    def body(self):

    t = self.t

    t.fillcolor('#F6D02F')

    t.begin_fill()

    # 右脸轮廓

    t.penup()

    t.circle(130, 40)

    t.pendown()

    t.circle(100, 105)

    t.left(180)

    t.circle(-100, 5)

    # 右耳朵

    t.seth(20)

    t.circle(300, 30)

    t.circle(30, 50)

    t.seth(190)

    t.circle(300, 36)

    # 上轮廓

    t.seth(150)

    t.circle(150, 70)

    # 左耳朵

    t.seth(200)

    t.circle(300, 40)

    t.circle(30, 50)

    t.seth(20)

    t.circle(300, 35)

    # print(t.pos())

    # 左脸轮廓

    t.seth(240)

    t.circle(105, 95)

    t.left(180)

    t.circle(-105, 5)

    # 左手

    t.seth(210)

    t.circle(500, 18)

    t.seth(200)

    t.fd(10)

    t.seth(280)

    t.fd(7)

    t.seth(210)

    t.fd(10)

    t.seth(300)

    t.circle(10, 80)

    t.seth(220)

    t.fd(10)

    t.seth(300)

    t.circle(10, 80)

    t.seth(240)

    t.fd(12)

    t.seth(0)

    t.fd(13)

    t.seth(240)

    t.circle(10, 70)

    t.seth(10)

    t.circle(10, 70)

    t.seth(10)

    t.circle(300, 18)

    t.seth(75)

    t.circle(500, 8)

    t.left(180)

    t.circle(-500, 15)

    t.seth(250)

    t.circle(100, 65)

    # 左脚

    t.seth(320)

    t.circle(100, 5)

    t.left(180)

    t.circle(-100, 5)

    t.seth(220)

    t.circle(200, 20)

    t.circle(20, 70)

    t.seth(60)

    t.circle(-100, 20)

    t.left(180)

    t.circle(100, 20)

    t.seth(300)

    t.circle(10, 70)

    t.seth(60)

    t.circle(-100, 20)

    t.left(180)

    t.circle(100, 20)

    t.seth(10)

    t.circle(100, 60)

    # 横向

    t.seth(180)

    t.circle(-100, 10)

    t.left(180)

    t.circle(100, 10)

    t.seth(5)

    t.circle(100, 10)

    t.circle(-100, 40)

    t.circle(100, 35)

    t.left(180)

    t.circle(-100, 10)

    # 右脚

    t.seth(290)

    t.circle(100, 55)

    t.circle(10, 50)

    t.seth(120)

    t.circle(100, 20)

    t.left(180)

    t.circle(-100, 20)

    t.seth(0)

    t.circle(10, 50)

    t.seth(110)

    t.circle(100, 20)

    t.left(180)

    t.circle(-100, 20)

    t.seth(30)

    t.circle(20, 50)

    t.seth(100)

    t.circle(100, 40)

    # 右侧身体轮廓

    t.seth(200)

    t.circle(-100, 5)

    t.left(180)

    t.circle(100, 5)

    t.left(30)

    t.circle(100, 75)

    t.right(15)

    t.circle(-300, 21)

    t.left(180)

    t.circle(300, 3)

    # 右手

    t.seth(43)

    t.circle(200, 60)

    t.right(10)

    t.fd(10)

    t.circle(5, 160)

    t.seth(90)

    t.circle(5, 160)

    t.seth(90)

    t.fd(10)

    t.seth(90)

    t.circle(5, 180)

    t.fd(10)

    t.left(180)

    t.left(20)

    t.fd(10)

    t.circle(5, 170)

    t.fd(10)

    t.seth(240)

    t.circle(50, 30)

    t.end_fill()

    self.noTrace_goto(130, 125)

    t.seth(-20)

    t.fd(5)

    t.circle(-5, 160)

    t.fd(5)

    # 手指纹

    self.noTrace_goto(166, 130)

    t.seth(-90)

    t.fd(3)

    t.circle(-4, 180)

    t.fd(3)

    t.seth(-90)

    t.fd(3)

    t.circle(-4, 180)

    t.fd(3)

    # 尾巴

    self.noTrace_goto(168, 134)

    t.fillcolor('#F6D02F')

    t.begin_fill()

    t.seth(40)

    t.fd(200)

    t.seth(-80)

    t.fd(150)

    t.seth(210)

    t.fd(150)

    t.left(90)

    t.fd(100)

    t.right(95)

    t.fd(100)

    t.left(110)

    t.fd(70)

    t.right(110)

    t.fd(80)

    t.left(110)

    t.fd(30)

    t.right(110)

    t.fd(32)

    t.right(106)

    t.circle(100, 25)

    t.right(15)

    t.circle(-300, 2)

    ##############

    # print(t.pos())

    t.seth(30)

    t.fd(40)

    t.left(100)

    t.fd(70)

    t.right(100)

    t.fd(80)

    t.left(100)

    t.fd(46)

    t.seth(66)

    t.circle(200, 38)

    t.right(10)

    t.fd(10)

    t.end_fill()

    # 尾巴花纹

    t.fillcolor('#923E24')

    self.noTrace_goto(126.82, -156.84)

    t.begin_fill()

    t.seth(30)

    t.fd(40)

    t.left(100)

    t.fd(40)

    t.pencolor('#923e24')

    t.seth(-30)

    t.fd(30)

    t.left(140)

    t.fd(20)

    t.right(150)

    t.fd(20)

    t.left(150)

    t.fd(20)

    t.right(150)

    t.fd(20)

    t.left(130)

    t.fd(18)

    t.pencolor('#000000')

    t.seth(-45)

    t.fd(67)

    t.right(110)

    t.fd(80)

    t.left(110)

    t.fd(30)

    t.right(110)

    t.fd(32)

    t.right(106)

    t.circle(100, 25)

    t.right(15)

    t.circle(-300, 2)

    t.end_fill()

    # 帽子、眼睛、嘴巴、脸颊

    self.cap(-134.07, 147.81)

    self.mouth(-5, 25)

    self.leftCheek(-126, 32)

    self.rightCheek(107, 63)

    self.colorLeftEar(-250, 100)

    self.colorRightEar(140, 270)

    self.leftEye(-85, 90)

    self.rightEye(50, 110)

    t.hideturtle()

    def cap(self, x, y):

    self.noTrace_goto(x, y)

    t = self.t

    t.fillcolor('#CD0000')

    t.begin_fill()

    t.seth(200)

    t.circle(400, 7)

    t.left(180)

    t.circle(-400, 30)

    t.circle(30, 60)

    t.fd(50)

    t.circle(30, 45)

    t.fd(60)

    t.left(5)

    t.circle(30, 70)

    t.right(20)

    t.circle(200, 70)

    t.circle(30, 60)

    t.fd(70)

    # print(t.pos())

    t.right(35)

    t.fd(50)

    t.circle(8, 100)

    t.end_fill()

    self.noTrace_goto(-168.47, 185.52)

    t.seth(36)

    t.circle(-270, 54)

    t.left(180)

    t.circle(270, 27)

    t.circle(-80, 98)

    t.fillcolor('#444444')

    t.begin_fill()

    t.left(180)

    t.circle(80, 197)

    t.left(58)

    t.circle(200, 45)

    t.end_fill()

    self.noTrace_goto(-58, 270)

    t.pencolor('#228B22')

    t.dot(35)

    self.noTrace_goto(-30, 280)

    t.fillcolor('#228B22')

    t.begin_fill()

    t.seth(100)

    t.circle(30, 180)

    t.seth(190)

    t.fd(15)

    t.seth(100)

    t.circle(-45, 180)

    t.right(90)

    t.fd(15)

    t.end_fill()

    t.pencolor('#000000')

    def start(self):

    self.body()

    def main():

    print('Painting the Pikachu... ')

    turtle.screensize(800, 600)

    turtle.title('Pikachu')

    pikachu = Pikachu()

    pikachu.start()

    turtle.mainloop()

    if __name__ == '__main__':

    main()

    展开全文
  • urtle库是Python语言中一个很流行的绘制图像的函数库,想象一...turtle绘图的基础知识:1.画布(canvas)画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。设置画布大小turtle.screensize(can...

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

    turtle绘图的基础知识:

    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),参数:width,height:输入宽和高为整数时,表示像素;为小数时,表示占据电脑屏幕的比例,(startx,starty):这一坐标表示矩形窗口左上角顶点的位置,如果为空,则窗口位于屏幕中心。

    如:turtle.setup(width=0.6,height=0.6)

    turtle.setup(width=800,height=800,startx=100,starty=100)

    2.画笔

    2.1画笔的状态

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

    2.2画笔的属性

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

    1)turtle.pensize():设置画笔的宽度;

    2)turtle.pencolor():没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green","red",也可以是RGB3元组。

    3)turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。

    2.3绘图命令

    操纵海龟绘图有着许多的命令,这些命令可以划分为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(r)

    绘制一个指定直径和颜色的圆点

    (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形状

    (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参数也是可选项

    (4) 其他命令

    命令

    说明

    turtle.mainloop()或turtle.done()

    启动事件循环 -调用Tkinter的mainloop函数。

    必须是乌龟图形程序中的最后一个语句。

    turtle.mode(mode=None)

    设置乌龟模式(“standard”,“logo”或“world”)并执行重置。如果没有给出模式,则返回当前模式。

    模式

    初始龟标题

    正角度

    standard

    向右(东)

    逆时针

    logo

    向上(北)

    顺时针

    turtle.delay(delay=None)

    设置或返回以毫秒为单位的绘图延迟。

    turtle.begin_poly()

    开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。

    turtle.end_poly()

    停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。

    turtle.get_poly()

    返回最后记录的多边形。

    3.命令详解

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

    描述:以给定半径画圆

    参数:

    radius(半径):半径为正(负),表示圆心在画笔的左边(右边)画圆;

    extent(弧度)(optional);

    steps(optional)(做半径为radius的圆的内切正多边形,多边形边数为steps)。

    举例:

    circle(50)#整圆;

    circle(50,steps=3)#三角形;

    circle(120,180)#半圆

    4.实例

    1、圈圈圆圆--入门

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    # coding=utf-8

    # 体验画圆

    # 导入海龟画图

    import turtle

    turtle.pensize(2) # 画笔大小

    turtle.circle(10) # 圆的大小,绘制半径为10像素的圆

    turtle.circle(20)

    turtle.circle(40)

    turtle.circle(80)

    turtle.circle(160)

    turtle.done() # 用来停止画笔绘制,绘图窗体不关闭。

    1585478-20200527212134623-1955197850.png

    2、五角星

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    # coding=utf-8

    import turtle

    import time

    turtle.pensize(5)

    turtle.pencolor("yellow")

    turtle.fillcolor("red")

    turtle.begin_fill()

    for _in range(5):

    turtle.forward(200)

    turtle.right(144)

    turtle.end_fill()

    time.sleep(2)

    turtle.penup()

    turtle.goto(-150,-120)

    turtle.color("violet")

    turtle.write("Done", font=('Arial',40,'normal'))

    turtle.mainloop()

    2017129164232741.png?2017119164242

    3、时钟程序

    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

    # coding=utf-8

    import turtle

    from datetimeimport *

    # 抬起画笔,向前运动一段距离放下

    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 handin 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)

    for iin 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()

    2017129164405752.png?2017119164415

    画一个边长为60的正方形,并填充为红色,边框为蓝色

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    #-*- coding: utf-8 -*-

    import turtle

    turtle.reset()

    a= 60

    turtle.fillcolor("red")

    turtle.pencolor("blue")

    turtle.pensize(10)

    turtle.fill(True)

    turtle.left(90)

    turtle.forward(a)

    turtle.left(90)

    turtle.forward(a)

    turtle.left(90)

    turtle.forward(a)

    turtle.left(90)

    turtle.forward(a)

    turtle.fill(False)

    2017129164543013.png?201711916461

    最后一个实例:

    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

    from numpyimport *

    from randomimport random

    import turtle

    turtle.reset()

    x= array([[.5],[.5]])

    p= [0.85,0.92,0.99,1.00]

    A1= array([[.85,0.04],

    [-0.04,.85]])

    b1= array([[0],[1.6]])

    A2= array([[0.20,-0.26],

    [0.23,0.22]])

    b2= array([[0],[1.6]])

    A3= array([[-0.15,0.28],

    [0.26,0.24]])

    b3= array([[0],[0.44]])

    A4= array([[0,0],

    [0,0.16]])

    turtle.color("blue")

    cnt= 1

    while True:

    cnt+= 1

    if cnt== 2000:

    break

    r= random()

    if r < p[0]:

    x= dot(A1 , x)+ b1

    elif r < p[1]:

    x= dot(A2 , x)+ b2

    elif r < p[2]:

    x= dot(A3 , x)+ b3

    else:

    x= dot(A4 , x)

    #print x[1]

    turtle.up()

    turtle.goto(x[0][0]* 50,x[1][0]* 40 - 240)

    turtle.down()

    turtle.dot()

    2017129164759441.jpg?201711916489

    更多内容链接

    展开全文
  • Turtle库是Python中内置的绘图库,功能十分强大。就像一个小海龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。

    一、设置画布大小

    1、screensize()
    turtle.screensize(canvwidth=None, canvheight=None, bg=None)
    参数:为画布的宽, 高, 背景颜色(以像素为单位)

    2、setup()
    turtle.setup(width=0.5, height=0.75, startx=None, starty=None)
    参数:
    width, height: 输入宽和高为整数表示像素; 为小数表示占据电脑屏幕的比例;
    (startx, starty): 这一坐标表示矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心。

    二、画笔的属性

    • turtle.pensize():设置画笔的宽度;

    • turtle.pencolor():没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", “red”,也可以是RGB 3元组。

    • turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。

    三、画笔控制命令

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

    四、画笔运动命令

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

    五、全局控制命令

    命令说明
    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参数也是可选项

    六、其他命令

    • 1、turtle.mainloop()或turtle.done():
      启动事件循环 -调用Tkinter的mainloop函数。必须是乌龟图形程序中的最后一个语句。

    • 2、turtle.mode(mode=None):
      设置乌龟模式(“standard”,“logo”或“world”)并执行重置。如果没有给出模式,则返回当前模式。

    模式初始龟标题正角度
    standard向右(东)逆时针
    logo向上(北)顺时针
    • 3、turtle.delay(delay=None):
      设置或返回以毫秒为单位的绘图延迟。
    • 4、turtle.begin_poly():
      开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。
    • 5、turtle.end_poly():
      停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。
    • 6、turtle.get_poly():
      返回最后记录的多边形

    七、弧形绘制

    1、给定半径画圆
    turtle.circle(radius, extent=None, steps=None)

    2、参数:

    • radius(半径):半径为正(负),表示圆心在画笔的左边(右边)画圆

    • extent(弧度) (optional)

    • steps (optional) (做半径为radius的圆的内切正多边形,多边形边数为steps)

    参考文章:
    1、https://blog.csdn.net/zengxiantao1994/article/details/76588580(Python绘图Turtle库详解)
    2、https://www.cnblogs.com/garrett0220/p/9329615.html(Python库-----Turtle绘图库)

    展开全文
  • python----turtle绘图库

    2019-11-16 14:30:02
    python蟒蛇的绘制 ...import turtle turtle.setup(650,350,200,200) turtle.pu() turtle.fd(-250) turtle.pd() turtle.pensize(20) turtle.pencolor("red") turtle.seth(-40) for i in range(4): t.cir...
  • 1、turtle库介绍 使用方法:from turtle import * 显示器和turtle窗体的左上角都是原点 turtle.screensize(1000,600,...
  • 初试turtle绘图库

    千次阅读 2017-05-06 23:07:41
    import turtle turtle.speed(10) turtle.setup(1300,800,0,0)#窗口相素大小1300*800 pythonsize = 10 turtle.pensize(pythonsize)#画笔粗细 turtle.pencolor("red")#画笔颜色 turtle.seth(0)#初始方向...
  • Turtle 的灵感来自Logo 教育编程语言。该语言最初被设计为一种教学工具,甚至可以用来控制在物理纸上画画的小型乌龟机器人。Logo 催生了许多不同编程语言中“海龟图形”的实现。例如,Python 编程语言带有内置的海龟...
  • python turtle绘图库

    2021-02-18 08:45:41
    turtle库概述 turtle(海龟)库是turtle绘图体系的Python实现; 属于入门级的图形绘制函数库; Python语言的标准库之一。 引入问题1:什么是标准库? 问题答复:Python计算生态 = 标准库 + 第三方库,标准库是随...
  • turtle绘图库做科学绘图工具前言开始画图部分画坐标轴项目github附录A:如何使用:附录B:更方便的matplotlib如何使用:附录C:其他:作者 前言 这个项目还是有一点小瑕疵的,那就是总是超出那么一点来和没有加入...
  • https://www.cnblogs.com/bravestarrhu/p/8287261.htmlhttps://blog.csdn.net/zengxiantao1994/article/details/76588580Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴...
  • Python--turtle绘图库

    2021-01-18 16:13:57
    Python--turtle绘图库一、turtle库概述二、绘图场地--画布(canvas)三、绘图工具--画笔四、绘图动作--绘图命令 一、turtle库概述 turtle库是Python中用于绘制图形的其中一种函数库,还有其他绘图函数库,如...
  • 下面的代码为 python 蟒蛇绘制举例,其中的注释行对 turtle 绘图库的调用和其中的基本命令进行了简介 import turtle ## 引入一个绘图库 # 方法一 # import <库名> # 使用:库名.函数名(函数参数) # 方法...
  • 实例:绘制一条蟒蛇#turtle:绘图库(海龟库)importturtleturtle.setup(650,350,200,200)turtle.penup()turtle.fd(-250)turtle.pendown()turtle.pensize(25)turtle.pencolor("purple")turtle.seth(-40)for i in range...
  • 文件目录:main.py#ai8py.comimport os, sysBASE_DIR = os.path.dirname(os.path.abspath(__file__))sys.path.append(BASE_DIR)import turtle as tfrom bizi import draw_biziimport headimport e...
  • 声明:本文纯属原创,转载请注明出处,侵权必究. 作者联系方式 : QQ:993678929 头文件:Windows.h 包含了GDI绘图函数 math.h : 包含... 两个合起来就能实现随机渐变色了 我的绘图库完整项目地址: Tomlib 中的 tomgdi.h
  • turtle 属于比较简单的绘图库,不需要另行下载,下来主要从基本使用上简单讲述下: 1)画布初始化设置的两种方法: turtle.screensize(canvwidth=None, canvheight=None, bg=None) 参数分别为画布的宽(单位像素), 高,...
  • python绘图库turtle

    2019-01-24 08:54:12
    python绘图库turtle,直接import就可以使用,和pip安装的同效果

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 700
精华内容 280
关键字:

turtle绘图库