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

  • 相关阅读:
    Kosaraju算法---强联通分量
    Java和C++的区别
    嵌入式面试题汇总
    tabbar 之 基本结构搭建
    路由 之 再识
    常见问题 之 vue项目中使用less报错
    路由 之 初识
    VueCLI3创建项目和目录结构与配置信息详解
    runtime-compiler 和 runtime-only的区别
    vueCLI2 之 目录结构
  • 原文地址:https://www.cnblogs.com/bpf-1024/p/10512323.html
Copyright © 2011-2022 走看看