美文网首页bdml
2018-12-21[python][turtle库]画小猪佩奇

2018-12-21[python][turtle库]画小猪佩奇

作者: jianshuxu | 来源:发表于2018-12-21 17:15 被阅读0次

    python之turtle库学习

    作者:鎏嫣宫守护
    来源:CSDN
    原文:https://blog.csdn.net/qq_32067045/article/details/80243430

    一、方法

    1. forward() | fd():向前移动指定的距离。参数:一个数字(integer or float))。
    turtle.forward(25)
    
    1. backward() | bk() | back():向后移动指定的距离。参数:一个数字(integer or float))。
    turtle.backward(30)
    
    1. right() | rt():以角度单位向右转动。参数:一个数字(integer or float))。单位默认为度数,可以通过degrees()和radians()进行设置。
    turtle.right(45)
    
    1. left() | lt():以角度单位向右转动。参数:一个数字(integer or float))。单位默认为度数,可以通过degrees()和radians()进行设置。
    turtle.left(45) 
    
    1. goto() | steps() | setposition():移动到绝对位置,如果笔落下,画线,不改变方向。参数:x-一个数字或一对数字。y-一个数字或None。
    turtle.setpos(60,30)
    #60.00,30.00)
    
    1. setx():设置第一个坐标的值即X方向。参数:一个数字(integer or float))。
    turtle.setx(10)
    #(10.00,0.00)
    
    1. sety():设置第二个坐标的值即Y方向。参数:一个数字(integer or float))。
    turtle.sety(10)
    #(0.00,10.00)
    
    1. setheading() | seth(): 将方向设置为to_angle.就是东西南北方向。具体如下:
      标准模式:0 - 东 90 - 北 180 - 西 270 - 南 标志模式 0- 北 90- 东 180- 南 270 - 西
    turtle.setheading(90)
    
    1. home() : 移动到原点 - 坐标(0,0):并将其标题设置为其起始方向(取决于模式)。
    turtle.home()
    # (0.00,0.00)
    
    1. circle():绘制一个给定半径的圆。参数:radius-一个数字(半径,如果值为正则逆时针,负数为顺时针),extent-一个数字()steps- 执行的步数。
    turtle.circle(120,180,5)
    
    1. dot() :用颜色画出一个直径大小的圆点。参数:size-一个大于1的整数,可None。默认用的是pensize+4和2*pensize的最大值,color-颜色值
    turtle.dot(20, "blue")
    
    1. stamp():将当前位置上的形状复制到画布上返回stamp_id.可以调用,可以删除。
    turtle.stamp()
    
    1. clearstamp():删除stamp()返回来的值。参数:stampid。

    2. clearstamps():删除全部stamp()的值。参数:stampid。

    3. undo():撤销最后的动作。

    4. speed():将速度设置为0..10范围内整数。如果没有参数,则返回当前速度。如果大于10或者小于0.5,则速度设置为0 。

    “最快”:0 :直接成图,没有动画效果
    “快”:10:大概一秒
    “正常”:6:
    “慢”:3
    “最慢”:1

    1. position() | pos(): 返回当前的位置。
    turtle.pos()
    # (0.00,0.00)
    
    1. towards(): 返回当前位置同指定位置之间的角度。参数:x-一个数字或一对数字或一个实例的向量,y-如果x是数字,则为数字,否则为None。
    turtle.goto(10,10)
    tw = turtle.towards(0,0)
    print(tw)
    # 225
    
    1. xcor():返回x坐标。

      ycor():返回y坐标。

    2. heading(): 返回当前的方向值。

    3. distance():返回x,y两个点的直线距离

    4. degrees():设置一整圈的度数。默认是360度。

    5. radians():将角度测量单位设置为弧度。相当于 degrees(2*math.pi)

    6. pendown() | pd() | down():放下笔,移动的时候绘图。

    7. penup() | pu() | up():将提起笔,移动时无图。

    8. pensize():设置线条的粗细。参数:width-一个正数

    9. 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”: 正数

    1. isdown():如果笔停止返回True,反之False

    2. pencolor():设置笔的颜色。

    3. fillcolor():笔的填充色。

    4. color():同时设置pencolor和fillcolor

    5. filling():返回fillstate状态,如果填充则返回True,反之False。

    6. begin_fill():在绘制要填充的形状前调用。当然在调用完还需要end_fill()。

    7. reset():重置,将屏幕中的图纸删除,重新居中并将所有变量设置为默认值。

    8. clear():删除图纸。对属性不做操作。

    9. write():写文本。参数:arg-要写入的对象。move-是否移动。align-对齐方式:left,right,center。font-字体。fontname,fontsize,fonttype。

    10. hideturtle() | ht() :删隐藏乌龟的形状,在做复杂绘图的时候隐藏的时候有利于提高绘图速度。

    11. showturtle() | st():显示乌龟的形状。

    12. isvisible():乌龟是否可见。如果可见返回True,反之则False。

    13. shape():设置乌龟的图形形状,取值:“arrow”, “turtle”, “circle”, “square”, “triangle”, “classic”

    14. isvisible():乌龟是否可见。如果可见返回True,反之则False。

    15. resizemode():参数:rmode取值:"auto","user","noresize".

    16. shapesize() | turtlesize() : 返回笔的属性。

    17. shearfactor(): 设置或者返回当前的剪切因子。

    18. tilt():旋转由turtle shape角度从当前的倾斜角度。

    19. settiltangle():无论当前的倾斜角度如何,旋转乌龟指向 angle 指定的方向。参数:angle -数字。已弃用

    20. tiltangle():设置或者返回当前的倾斜角度。参数:angle - 数字

    21. shapetransform():设置或返回乌龟的形状的当前转换矩阵。

    22. get_shapepoly():返回当前形状的坐标。

    23. onclick():鼠标点击事件。参数:fun-一个带有两个参数的函数,这些参数将与画布上单击点的坐标一个调用。num-鼠标按钮的数量,默认为1(左键)。add- True的时候将添加新的绑定。否则替换以前的绑定。

    24. onrelease():鼠标释放事件。参数同点击事件。

    25. ondrag():鼠标移动事件。参数同点击事件。

    26. begin_poly(): 开始记录多边形的顶点。

    27. end_poly():停止记录多边形的顶点。

    28. get_poly():返回最后记录的多边形。

    29. clone():创建并返回具有相同位置等等属性的乌龟克隆。

    30. getturtle() | getpen() :获取trutle对象本身。

    31. getscreen():返回正在绘制的对象。

    32. setundobuffer(): 设置或禁用中断器。参数: size-整数。如果大小是None,则禁用缓冲区。

    33. undobufferentries():返回undobuffer中的条目数。

    34. bgcolor():设置或者返回当前的TurtleScreen的背景颜色。

    35. bgpic():设置背景图片。参数: picname-文件名。

    36. delay(): 设置或返回以毫秒为单位的绘制延迟,延迟越大,绘图越慢。

    37. ontimer():定时器。

    38. mainloop() | done() :开始循环 。

    39. textinput() | numinput():弹出一个输入字符串和数字的窗口。

    40. mode(): 三种方式:“standard”, “logo” or “world”

    小猪佩奇代码(转自网络)

    import turtle as t
    t.pensize(4) # 设置画笔的大小
    t.colormode(255) # 设置GBK颜色范围为0-255
    t.color((255,155,192),"pink") # 设置画笔颜色和填充颜色(pink)
    t.setup(840,500) # 设置主窗口的大小为840*500
    t.speed(10) # 设置画笔速度为10
    #鼻子
    t.pu() # 提笔
    t.goto(-100,100) # 画笔前往坐标(-100,100)
    t.pd() # 下笔
    t.seth(-30) # 笔的角度为-30°
    t.begin_fill() # 外形填充的开始标志
    a=0.4
    for i in range(120):
        if 0<=i<30 or 60<=i<90:
            a=a+0.08
            t.lt(3) #向左转3度
            # t.fd(a) #向前走a的步长
        else:
            a=a-0.08
            t.lt(3)
            t.fd(a)
    t.end_fill() # 依据轮廓填充
    
    t.pu() # 提笔
    t.seth(90) # 笔的角度为90度
    t.fd(25) # 向前移动25
    t.seth(0) # 转换画笔的角度为0
    t.fd(10)
    t.pd()
    t.pencolor(255,155,192) # 设置画笔颜色
    t.seth(10)
    t.begin_fill()
    t.circle(5) # 画一个半径为5的圆
    t.color(160,82,45) # 设置画笔和填充颜色
    t.end_fill()
    t.pu()
    t.seth(0)
    t.fd(20)
    t.pd()
    t.pencolor(255,155,192)
    t.seth(10)
    t.begin_fill()
    t.circle(5)
    t.color(160,82,45)
    t.end_fill()
    #头
    t.color((255,155,192),"pink")
    t.pu()
    t.seth(90)
    t.fd(41)
    t.seth(0)
    t.fd(0)
    t.pd()
    t.begin_fill()
    t.seth(180)
    t.circle(300,-30) # 顺时针画一个半径为300,圆心角为30°的园
    t.circle(100,-60)
    t.circle(80,-100)
    t.circle(150,-20)
    t.circle(60,-95)
    t.seth(161)
    t.circle(-300,15)
    t.pu()
    t.goto(-100,100)
    t.pd()
    t.seth(-30)
    a=0.4
    for i in range(60):
        if 0<=i<30 or 60<=i<90:
            a=a+0.08
            t.lt(3) #向左转3度
            # t.fd(a) #向前走a的步长
        else:
            a=a-0.08
            t.lt(3)
            t.fd(a)
    t.end_fill()
    #耳朵
    t.color((255,155,192),"pink")
    t.pu()
    t.seth(90)
    t.fd(-7)
    t.seth(0)
    t.fd(70)
    t.pd()
    t.begin_fill()
    t.seth(100)
    t.circle(-50,50)
    t.circle(-10,120)
    t.circle(-50,54)
    t.end_fill()
    t.pu()
    t.seth(90)
    t.fd(-12)
    t.seth(0)
    t.fd(30)
    t.pd()
    t.begin_fill()
    t.seth(100)
    t.circle(-50,50)
    t.circle(-10,120)
    t.circle(-50,56)
    t.end_fill()
    #眼睛
    t.color((255,155,192),"white")
    t.pu()
    t.seth(90)
    t.fd(-20)
    t.seth(0)
    t.fd(-95)
    t.pd()
    t.begin_fill()
    t.circle(15)
    t.end_fill()
    t.color("black")
    t.pu()
    t.seth(90)
    t.fd(12)
    t.seth(0)
    t.fd(-3)
    t.pd()
    t.begin_fill()
    t.circle(3)
    t.end_fill()
    t.color((255,155,192),"white")
    t.pu()
    t.seth(90)
    t.fd(-25)
    t.seth(0)
    t.fd(40)
    t.pd()
    t.begin_fill()
    t.circle(15)
    t.end_fill()
    t.color("black")
    t.pu()
    t.seth(90)
    t.fd(12)
    t.seth(0)
    t.fd(-3)
    t.pd()
    t.begin_fill()
    t.circle(3)
    t.end_fill()
    #腮
    t.color((255,155,192))
    t.pu()
    t.seth(90)
    t.fd(-95)
    t.seth(0)
    t.fd(65)
    t.pd()
    t.begin_fill()
    t.circle(30)
    t.end_fill()
    #嘴
    t.color(239,69,19)
    t.pu()
    t.seth(90)
    t.fd(15)
    t.seth(0)
    t.fd(-100)
    t.pd()
    t.seth(-80)
    t.circle(30,40)
    t.circle(40,80)
    #身体
    t.color("red",(255,99,71))
    t.pu()
    t.seth(90)
    t.fd(-20)
    t.seth(0)
    t.fd(-78)
    t.pd()
    t.begin_fill()
    t.seth(-130)
    t.circle(100,10)
    t.circle(300,30)
    t.seth(0)
    t.fd(230)
    t.seth(90)
    t.circle(300,30)
    t.circle(100,3)
    t.color((255,155,192),(255,100,100))
    t.seth(-135)
    t.circle(-80,63)
    t.circle(-150,24)
    t.end_fill()
    #手
    t.color((255,155,192))
    t.pu()
    t.seth(90)
    t.fd(-40)
    t.seth(0)
    t.fd(-27)
    t.pd()
    t.seth(-160)
    t.circle(300,15)
    t.pu()
    t.seth(90)
    t.fd(15)
    t.seth(0)
    t.fd(0)
    t.pd()
    t.seth(-10)
    t.circle(-20,90)
    t.pu()
    t.seth(90)
    t.fd(30)
    t.seth(0)
    t.fd(237)
    t.pd()
    t.seth(-20)
    t.circle(-300,15)
    t.pu()
    t.seth(90)
    t.fd(20)
    t.seth(0)
    t.fd(0)
    t.pd()
    t.seth(-170)
    t.circle(20,90)
    #脚
    t.pensize(10)
    t.color((240,128,128))
    t.pu()
    t.seth(90)
    t.fd(-75)
    t.seth(0)
    t.fd(-180)
    t.pd()
    t.seth(-90)
    t.fd(40)
    t.seth(-180)
    t.color("black")
    t.pensize(15)
    t.fd(20)
    t.pensize(10)
    t.color((240,128,128))
    t.pu()
    t.seth(90)
    t.fd(40)
    t.seth(0)
    t.fd(90)
    t.pd()
    t.seth(-90)
    t.fd(40)
    t.seth(-180)
    t.color("black")
    t.pensize(15)
    t.fd(20)
    #尾巴
    t.pensize(4)
    t.color((255,155,192))
    t.pu()
    t.seth(90)
    t.fd(70)
    t.seth(0)
    t.fd(95)
    t.pd()
    t.seth(0)
    t.circle(70,20)
    t.circle(10,330)
    t.circle(70,30)
    

    相关文章

      网友评论

        本文标题:2018-12-21[python][turtle库]画小猪佩奇

        本文链接:https://www.haomeiwen.com/subject/vztvkqtx.html