zoukankan      html  css  js  c++  java
  • Note of Python Turtle

     

    Note of Python Turtle

            Turtle 库函数是 Python语言中一个流行的绘图函数库。Turtle 意思是海龟,在Python中显示为一个小箭头,通过它的移动而留下美妙的曲线~~~

    1.调用库函数

    (1) 导入库函数:import  <库名>

        使用库中函数:<库名> . <函数名> (<函数参数>)

    import turtle
    turtle.pensize(3)
    turtle.forward(250)

    (2) 导入库函数:from  <库名>  import * ( *为通配符 )

       使用库中函数:<函数名> (<函数参数>)

    from turtle import *
    pensize(3)
    forward(250)

    效果示例:

    2. 绘图控制函数

    2.1 画布:画布是用于绘图的区域,可控制其界面大小。

    (1) setup ( width , height , startx , starty )

    width : 窗口宽度,值为整数则对应像素值;值为小数则为窗口宽度与屏幕的比例。

    height : 窗口高度,值为整数则对应像素值;值为小数则为窗口高度与屏幕的比例。

    startx : 窗口左侧与屏幕左侧的像素距离,值为None则窗口位于窗口水平中央。

    starty : 窗口右侧与屏幕右侧的像素距离,值为None则窗口位于窗口垂直中央。

     

    (2) screensize ( canvwidth = None , canvheight = None , bg = None)

    canvwidth:窗口宽度,单位为像素

    canvheight:窗口高度,单位为像素

    bg:窗口背景颜色

    from turtle import setup         #导入turtle.setup函数
    setup(650,350,350,180)           #方法一
    screensize(650,350,"green")      #方法二

    2.2 画笔

    (1) 抬笔:penup() / pu() / up()               绘图时不留下痕迹

    (2) 落笔:pendown() / pd() / down()                绘图时留下痕迹

    (3) 画笔速度:speed( speed )                   设置画笔的速度,speed在 [0,10] 之间,speed 为 0 时最快

    (4) 画笔宽度:pensize( width )                设置画笔的宽度

    (5) 画笔颜色:pencolor( colorstring ) / pencolor(R,G,B)    设置画笔的颜色

     

    英文名称

    中文名称

    R  G  B

    white

    白色

    255  255  255

    black

    黑色

    0  0  0

    gray

    灰色

    190  190  190

    darkgreen

    深绿色

    0 100  0

    gold

    金色

    255  215  0

    violet

    紫罗兰

    238  130  238

    purple

    紫色

    160  32  240

     

    2.3 绘图

    命令

    说明

    fd(distance) / forward(distance)

    distance 为前进距离的像素值

    bk(distance) / backward(distance)

    distance 为后退距离的像素值

    lt(angle) / left(angle)

    angle 左转的角度

    rt(angle) / right(angle)

    angle 右转的角度

    seth(angle) / setheading(angle)

    angle 转到的角度,即改变绘图的方向

    circle(radius [,extent])

    绘制以radius为半径、以angle为角度弧形

    (extent None时,绘制整个圆;radius 为正数时,绘制的图形在小海龟左侧;radius 为负数时,绘制的图形在小海龟右侧)

    goto(x,y)

    将画笔移动到坐标为(x,y)的位置

    ht() / hideturtle()

    隐藏小海龟

    st() / showturtle()

    显示小海龟

    fillcolor(colorstring)

    填充颜色

    begin_fill()

    开始填充图形

    end_fill()

    填充完成

     

     

    2.4 控制命令

    命令

    说明

    home()

    使小海龟回到初始位置 (0,0)

    clear()

    清空窗口,但小海龟的位置和状态不变

    reset()

    清空窗口,且重置小海龟的状态为初始状态

    undo()

    撤销上一个动作

    stamp()

    复制当前图形

    write(s [,font=(“font_name”,font_size,”font_type”)])

    文本,s 为文本内容,font 是字体的参数,内部分别是字体名称,大小和类型

     

    3 绘制图形示例

    3.1 绘制叠加等边三角形

     

    # 往里叠加的等边三角形from turtle import *
    n = int(input("请输入需要绘制的三角形个数:"))
    d = 300for i in range(n):
        for j in range(3):
            seth((-1)**i*120*j)
            fd(d)
        fd(-d/2)
        d /= 2
    ht()
    pu()
    home()
    write("已绘制{}个等边三角形".format(n))

    3.2 绘制正方形螺旋线

     

    #正方形螺旋线from turtle import *
    r = 10      #最小边长
    d = 10      #边与边的距离
    n = 25      #圈数
    speed(10)   #加快绘图速度
    for i in range(2*n):
        fd(r)
        left(90)
        fd(r)
        left(90)
        r += d

      3.3 绘制小蟒蛇

     

    #小蟒蛇from turtle import *
    setup(900,300,200,180)      #设置画布大小
    pensize(30)                 #设置画笔大小
    pencolor("purple")          #设置画笔颜色
    seth(-40)                   #初始画笔方向
    n = 3
    r = 40
    angle = 80for i in range(n):
        circle(r,angle)
        circle(-r,angle)
    circle(r,angle/2)
    fd(r/2)
    circle(r/2,180)
    fd(r)

     3.4 绘制国际象棋棋盘

     

    from turtle import *
    d = int (input("d = ")) #获取正方形长度
    speed(0)                # 提高画笔速度
    def Sq_white():         # 定义函数:画一小格白框框
        for i in range(4):
            fd(d)
            rt(90)
        fd(d)
    
    def Sq_black():         # 定义函数:画一小格黑框框
        fillcolor("black")
        begin_fill()
        for i in range(4):
            fd(d)
            rt(90)
        end_fill()
        fd(d)
    
    def W_B(n):             # 定义函数:白黑框框组合
        for a in range(n):
            Sq_white()
            Sq_black()
    
    def B_W(n):             # 定义函数:黑白框框组合
        for b in range(n):
            Sq_black()
            Sq_white()
    
    def Turn():             # 定义函数:画完一次转的角度
        rt(90)
        fd(d)
    
    def Control2():             # 执行的函数2:使用普通的方法,程序简单
        for p in range(4):
            W_B(4)
            rt(90)
            fd(2*d)
            rt(90)
            W_B(4)
            rt(180)
    
    Control2()

  • 相关阅读:
    LeetCode 977 有序数组的平方
    LeetCode 24 两两交换链表中的节点
    LeetCode 416 分割等和子集
    LeetCode 142 环形链表II
    LeetCode 106 从中序与后序遍历序列构造二叉树
    LeetCode 637 二叉树的层平均值
    LeetCode 117 填充每个节点的下一个右侧节点
    LeetCode 75 颜色分类
    redhat 7.4 挂载ntfs格式的u盘并且使用
    redhat 查看CPU frequency scaling(CPU频率缩放)
  • 原文地址:https://www.cnblogs.com/bpf-1024/p/10512323.html
Copyright © 2011-2022 走看看