精华内容
下载资源
问答
  • Python绘图Turtle库详解

    万次阅读 多人点赞 2017-08-02 17:36:45
    Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、...turtle绘图的基础知识: 1. 画布(canvas)  画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。  设

            Turtle库是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",也可以是RGB 3元组。

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

    启动事件循环 -调用Tkintermainloop函数。

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

    turtle.mode(mode=None)

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

    模式

    初始龟标题

    正角度

    standard

    向右(东)

    逆时针

    logo

    向上(北)

    顺时针

    turtle.delay(delay=None)

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

    turtle.begin_poly()

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

    turtle.end_poly()

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

    turtle.get_poly()

    返回最后记录的多边形。

     

    3. 命令详解

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

            描述:以给定半径画圆

            参数:

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

            extent(弧度) (optional);

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

    举例:

    circle(50) # 整圆;

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

    circle(120, 180) # 半圆

     

    实例:

    1、太阳花

    # coding=utf-8
    import turtle
    import time
    
    # 同时设置pencolor=color1, fillcolor=color2
    turtle.color("red", "yellow")
    
    turtle.begin_fill()
    for _ in range(50):
    turtle.forward(200)
    turtle.left(170)
    turtle.end_fill()
    
    turtle.mainloop()
    


    2、五角星

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


    3、时钟程序

    # coding=utf-8
     
    import turtle
    from 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)
        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()

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

    Turtle库是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",也可以是RGB 3元组。

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

    2.3 绘图命令

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

    (1) 画笔运动命令

    ecb646314bc4bb6d8563be130b8d8c3e.png

    (2) 画笔控制命令

    648536710cffa01f9b5da774adfc7f02.png

    (3) 全局控制命令

    ee64c8d2295c3a7e801226fe2aefe03e.png

    (4) 其他命令

    09b7a3a09cb45c124bc7287ae17eed88.png

    3. 命令详解

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

    描述:以给定半径画圆

    参数

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

    extent(弧度) (optional);

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

    举例:

    circle(50) # 整圆;

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

    circle(120, 180) # 半圆

    实例

    1、太阳花

    e75ad904040b1f03d463932007fb529a.png
    ba60a4d7966659cdec902dc8ae718564.png

    2、五角星

    ce7a99368e0e575be8eebb6f2949746b.png
    a28521ba5a4d4e848a519fe5b35c4472.png

    3、时钟程序

    573729d886fa4dc9092e3ec195bd8110.png
    15d68c6965c0b3ec8e21bf61f42601dc.png
    f0601c93d8ac46f02d53750b8dd1c947.png
    9135fb76db491de5f9ad720d96addae6.png

    专注于技术热点大数据,人工智能,JAVA、Python、 C 、GO、Javascript语言最新前言技术,及业务痛点问题分析,请关注【编程我最懂】共同交流学习。

    展开全文
  • pythonturtle绘图的简单指令
  • pythonturtle绘图

    2020-05-02 22:41:44
    今天学到了pythonturtle绘图,感觉还蛮好玩的。在知乎、python123上看到很多大佬的绘图,感觉很有意思。也搜到很多turtle绘图的教程。 python自带了一些turtle画图的demo在Command Prompt敲下面的代码就可以打开啦...

    turtle绘图

    今天学到了python的turtle绘图,感觉还蛮好玩的。在知乎python123上看到很多大佬的绘图,感觉很有意思,看到有些结合了random库、time库画出来的二叉树很美、很神奇。

    在这里插入图片描述

    我也搜到很多turtle绘图的教程,比如CSDN上发的Python海龟绘图法详细介绍,结果发现CSDN这篇文章是从官网turtle库中文介绍搬运而来,直接去看官网文档就好了。
    官网上说:“海龟绘图很适合用来引导孩子学习编程。…… 最初来自于 Logo 编程语言。” turtle库画图虽然上手简单,但是也不要小看了,结合一些其他库(random库、time库)和函数递归就能画出很复杂炫酷的图。

    python自带了一些turtle画图的demo在Command Prompt敲下面的代码就可以打开啦,这里有别人放的demo

    python -m turtledemo
    

    这里也可以演示单独的脚本,就可以直接看到画出的图,bytedesign是演示脚本名,可以根据文档中提供的清单换成其他的demo。这些demo有些还挺复杂的,融合python其他的知识,乍一看可能看不懂,先mark一下。

    python -m turtledemo.bytedesign
    
    名称描述相关特性
    bytedesign复杂的传统海龟绘图模式tracer(), delay, update()
    chaos绘制 Verhulst 动态模型,演示通过计算机的运算可能会生成令人惊叹的结果世界坐标系
    clock绘制模拟时钟显示本机的当前时间海龟作为表针, ontimer
    colormixer试验 r, g, b 颜色模式ondrag() 当鼠标拖动
    forest绘制 3 棵广度优先树随机化
    fractalcurves绘制 Hilbert & Koch 曲线递归
    lindenmayer文化数学 (印度装饰艺术)L-系统
    minimal_hanoi汉诺塔矩形海龟作为汉诺盘 (shape, shapesize)
    nim玩经典的“尼姆”游戏,开始时有三堆小棒,与电脑对战。海龟作为小棒,事件驱动 (鼠标, 键盘)
    paint超极简主义绘画程序onclick() 当鼠标点击
    peace初级技巧海龟: 外观与动画
    penrose非周期性地使用风筝和飞镖形状铺满平面stamp() 印章
    planet_and_moon模拟引力系统复合开关, Vec2D
    round_dance两两相对并不断旋转舞蹈的海龟复合形状, clone shapesize, tilt, get_shapepoly, update
    sorting_animate动态演示不同的排序方法简单对齐, 随机化
    tree一棵 (图形化的) 广度优先树 (使用生成器)clone() 克隆
    two_canvases简单设计两块画布上的海龟
    wikipedia一个来自介绍海龟绘图的维基百科文章的图案clone(), undo()
    yinyang另一个初级示例circle() 画圆

    colormixer

    这是demo中的 colormixer,用来试验 r, g, b 颜色模式 结合了ondrag() 实现鼠标拖动的交互功能,蛮神奇的!!
    在这里插入图片描述

    还有一些简单好玩的小例子我放在下面,下面这几个是看了嵩天老师python课程的初学者就能搞定的,上面那些可能还要琢磨琢磨,我暂时就搞不定。

    粉色小爱心

    from turtle import *
    color('pink')
    begin_fill()
    left(135)
    fd(100)
    right(180)
    circle(50,-180)
    left(90)
    circle(50,-180)
    right(180)
    fd(100)
    end_fill()
    hideturtle()
    done()
    

    在这里插入图片描述
    七段数码管绘制
    嵩天老师七段数码管绘制的案例,涉及到函数的使用、time库、turtle库的知识,是个蛮有意思的小案例。
    在这里插入图片描述
    科赫雪花绘制
    涉及函数递归的思想和方法,就是一个函数调用自己,好像很简单,但是又有点绕 = = 汉诺塔的递归方法求解就让人摸不着头脑
    在这里插入图片描述
    树的代码

    来源于知乎,没明白原答案中turtle为啥import两次,这里改动了一下,还是可以正常运行。

    
    import random
    import turtle as t
    
     # 树的主体
    def tree(branchLen):
        if branchLen > 3:
            if branchLen < 8:     # 最短的树枝部分
                if random.randint(0, 1) == 0:
                    t.color('snow')
                else:
                    t.color('lightcoral')   # 珊瑚色
                t.pensize(branchLen / 2)
            elif 8 <= branchLen <= 12:
                if random.randint(0, 2) == 0:
                    t.color('snow')
                else:
                    t.color('lightcoral')
                t.pensize(branchLen / 3)
            else:  # 表示树干部分 >12
                t.color('sienna')  # 赭色
                t.pensize(branchLen / 10)
    
            t.forward(branchLen)
            a = 1.5 * random.random()
            t.right(20*a)
            b = 1.5 * random.random()
            tree(branchLen-10*b)  # 递归 树枝变细
            t.left(40*a)
            tree(branchLen-10*b)
            t.right(20*a)
            t.up()
            t.backward(branchLen)
            t.down()
    
    
    def petal(m):  # 树下花瓣
        for i in range(m):
            a = 200 - 400 * random.random()
            b = 10 - 20 * random.random()
            t.up()
            t.forward(b)
            t.left(90)
            t.forward(a)
            t.down()
            t.color("lightcoral")
            t.circle(1)
            t.up()
            t.backward(a)
            t.right(90)
            t.backward(b)
    
    
    def main():
        t.getscreen().tracer(5, 0)
        t.screensize(bg='wheat')
        t.left(90)
        t.up()
        t.backward(150)
        t.down()
        t.color('sienna')
        tree(60)
        petal(100)
        t.ht()
        t.exitonclick()
    
    
    main()
    
    
    展开全文
  • Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一...turtle绘图的基础知识:1. 画布(canvas)画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。设置画布大小turtle.screensize(c...

    Turtle库是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",也可以是RGB 3元组。

    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.1 turtle.circle(radius, extent=None, steps=None)

    描述:以给定半径画圆

    参数:

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

    extent(弧度) (optional);

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

    举例:

    circle(50) # 整圆;

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

    circle(120, 180) # 半圆

    实例:

    1、太阳花

    # coding=utf-8

    import turtle

    import time

    # 同时设置pencolor=color1, fillcolor=color2

    turtle.color("red", "yellow")

    turtle.begin_fill()

    for _ in range(50):

    turtle.forward(200)

    turtle.left(170)

    turtle.end_fill()

    turtle.mainloop()

    1234587-20180914103912117-57609432.png

    2、五角星

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

    1234587-20180914104026334-1804253116.png

    3、时钟程序

    # coding=utf-8

    import turtle

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

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

    1234587-20180914104112171-1203292735.png

    展开全文
  • pythonturtle绘图

    2019-11-22 20:05:26
    目录Turtle介绍导入turtle的方式各种参数基础介绍画布(canvas)海龟(即画笔)海龟的属性绘图实例 Turtle介绍 Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的...
  • 使用pythonturtle绘图体系绘制国旗

    千次阅读 2019-10-13 22:12:27
    在十一国庆前夕,学习pythonturtle绘图体系,按照我理解的标准的国旗画法,画了一个国旗。横线、竖线、五个星星的连线为辅助线,用于定位,可以注释掉。 在这里插入代码片 import turtle as t import math as m...
  • python2.6版本中后引入的一个简单的绘图工具,叫做海龟绘图(Turtle Graphics),turtle库是python的内部库,使用导入即可 import turtle1. 画布(canvas)画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和...
  • 专 题Feature Story16\China Science & Technology Education文_毛京宇/北京师范大学第三附属中学 魏云靖/北京市师达中学有趣的Python turtle绘图Python turtle的发展Python中的turtle模块受启发于在欧美有着...
  • python2.6版本中引入的一个简单的绘图工具,叫做海龟绘图(Turtle Graphics)1.使用海龟绘图首先我们需要导入turtle,如下所示:from turtle import * #将turtle中的所有方法导入2.海龟绘图属性:(1)位置(2)方向(3)...
  • pythonturtle画蚊香,python用turtle画圆弧,原理:利用turtl原理:利用turtle绘制圆形,并使圆半径逐步增加代码如下:import turtleturtle.pensize(30)for i in range(30):turtle.circle(i*10,60)turtle.done()下...
  • Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形...
  • import turtledef draw_TJT®:turtle.screensize(800,600,“white”)turtle.pensize(3)turtle.pencolor(“black”)turtle.speed(10)TJT_color={1:“white”,-1:“black”}color_list=[1,-1]for c in color_list:...
  • Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一...turtle绘图的基础知识:1. 画布(canvas)画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。设置画布大小turtle.screensize(c...
  • Pythonturtle绘图

    2019-07-19 22:12:16
    绘制图像(画布,画笔,绘图命令) import turtle turtle.screensize(400,300,"pink") #设置画布大小和颜色 #turtle.forward(distance) 向当前画笔方向移动distance像素长度 turtle.forward(50) #turtle....
  • python-turtle绘图

    2019-12-28 18:47:25
    画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。 设置画布大小 turtle.screensize(canvwidth=None, canvheight=None, bg=None),参数分别为画布的宽(单位像素), 高, 背景颜色。 如:...
  • PythonTurtle绘图工具

    2018-08-27 14:36:56
    TurtlePython的Lib库中的一个绘图模块,使用之前需导入模块。 import turtle 画布 Turtle画布(canvas)是绘图区域,可设置大小和初始位置。默认有一个坐标原点为画布中心的坐标轴(0,0),默认"standard&...
  • Python绘图Turtle库详解 </h1> <div class="clear"></div> <div class="postBody">         Turtle库是Python语言中一个很流行的绘制图像的函数库...
  • 关于绘制图形库turtle#画布上,默认有一个坐标原点为画布中心的坐标轴(0,0),默认"standard"模式坐标原点上有一只面朝x轴正方向小乌龟一:海龟箭头Turtle相关方法##############################1.绘制的运动 ######...
  • 用Pythonturtle绘图

    2018-11-25 12:54:34
    自动绘朵小花的程序实现: ...import turtle as t t.setup(1500,1000,0,0) t.pensize(10) t.pencolor("green") //可以改成红色 m = 45 t.seth(m) t.pu() t.fd(80) t.pd() for i in range(8): t.set...
  • 是一个简单的绘图工具提供一个小海龟,可以把它理解为一个机器人,只能听得懂有限的命令绘图窗口的原点(0,0)在正中间,默认海龟的方向是右侧运动命令forward(d) 向前移动d长度backward(d) 向后移动d长度right(d) 向...
  • python海龟turtle绘图实例教程

    万次阅读 2017-04-06 17:03:26
    python2.6版本中引入的一个简单的绘图工具,叫做海龟绘图(Turtle Graphics) 1.使用海龟绘图首先我们需要导入turtle,如下所示:  from turtle import * #将turtle中的所有方法导入 2.海龟绘图属性:  (1)...
  • Python turtle绘图

    2018-08-05 19:41:35
    使用Python turtle绘图,绘制常规图形。。。。。。。。
  • 推荐给大家pythonturtle绘图几个超好看的颜色 color = [ 'lightcoral', 'coral', 'darkorange', 'gold', 'palegreen', 'paleturquoise', 'skyblue', 'plum', 'hotpink', 'pink']
  • pythonturtle绘图速度提升方法

    万次阅读 2019-12-06 21:22:40
    turtle.speed() “fastest”: 0 “fast”: 10 “normal”: 6 “slow”: 3 “slowest”: 1 turtle.Turtle().screen.delay(0) 默认情况下,绘图是有一个延迟的 可以通过这个方法把画布的延迟取消掉; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,341
精华内容 2,136
关键字:

python用turtle绘图

python 订阅