zoukankan      html  css  js  c++  java
  • turtle库

    turtle库是海龟体系在python语言的功能的实现

    turtle库包含近百个功能函数,主要的函数有:

    绘制状态函数:pendown(),penup(),  pensize(), 对应的别名为pd(), pu(), width()

    颜色控制函数:color(), pencolor(), begin_fill(), end_fill()

    运动控制函数:forward(), backward(), right(), left(), setheading(), goto(), circle(),对应的别名为fd(), bk(), rt(), lt(), seth()

    turtle.pendown()    别名turtle.pd()

      落下画笔,之后,移动画笔将绘制形状

    turtle.penup()    别名turtle.pu()

      抬起画笔,之后,移动画笔不会只形状

    turtle.pensize(widthh)    别名turtle.width(width)

      设置画笔宽度,当无参数输入时返回当前画笔宽度

      width:设置的画笔线条宽度,如果为None或者为空,则返回当前画笔宽度

    turtle.color()

      turtle.color(colorstring)    或者    turtle.color((r, g, b))    或者    turtle.color(r, g, b)    或者    turtle.color(colorstr1, colorstr2)    或者    turtle.color((r1, g1, b1), (r2, g2, b2))

      返回或设置画笔及背景颜色,当无参数输入时返回当前画笔及背景颜色

      colorstring:表示颜色的字符串。例如"purple", "red", "blue"等

      (r, g, b):颜色对应的RGB的01数值,例如:1,0.65,0

      直接使用turtle.color()函数,返回一个二元组,例如("purple", "red")分别对应画笔颜色和背景颜色

      使用单参数turtle.color(colorstring)函数,同时设置画笔和背景颜色为colorstring对应的色彩

      使用双参数turtle.color(colorstr1, colorstr2)函数,分别设置画笔和背景颜色为colorstr1和colorstr2对应的颜色

     

    turtle.pencolor(colorstring)   或者    turtle.pencolor((r, g, b))    或者    turtle.pencolor(r, g, b)

      返回或设置画笔颜色,当无参数输入时返回当前画笔颜色

      colorstring:表示颜色的字符串。例如"purple", "red", "blue"等

      (r, g, b):颜色对应的RGB的01数值,例如:1,0.65,0

      与turtle.color()函数不同,turtle.pencolor(colorstring)函数仅用于返回或设置画笔函数,对于没有背景填充需要的应用,使用该函数更为合理

    turtle.begin_fill()

      在绘制带有填充色彩图形之前调用,表示填充开始

    turtle.end_fill()

      在绘制带有填充色彩图形之后调用,表示填充结束

     

    turtle.forward(distance)    别名    turtle.fd(distance)

      向画笔当前行进方向前进distance距离

      distance:行进距离的像素值。当值为负数时,表示相反方向前进

    turtle.backward(distance)    别名   turtle.bk()

      向当前画笔行进反方向行进distance距离

      distance:行进距离的像素值。当值为负数时,表示相反方向前进

      turtle.backward(distance)函数不改变画笔方向,相当于后退着行进

     

    turtle.right(angle)    别名    turtle.rt(angle)

      以当前行进角度为原点,行进方向向右改变相对应的角度值angle

      angle:角度的整数值

    turtle.right(angle)    别名    turtle.rt(angle)

      以当前行进角度为原点,行进方向向左改变相对应的角度值angle

      angle:角度的整数值

    turtle.setheading(to_angle)    别名    turtle.seth(to_angle)

      设置画笔当前行进方向的角度为to_rangle,该角度是绝对方向角度值

      to_angle:角度地整数值

    如图是turtle库的角度体系,供turtle.seth()函数使用、turtle库的角度坐标体系以正东方为绝对0°,这也是画笔的初始方向,正西方为绝对180°/-180º,正北方向-90º/270º,正南方向90º/-270º

    这个方向坐标体系是方向的绝对方向体系,与画笔当前方向无关

    turtle.goto(x, y)

      将画笔移动到绝对位置(x, y)处

      x:位置坐标系的绝对横坐标

      y:位置坐标系的绝对纵坐标

      参考上面的图,画笔初始位置在画布正中心,坐标为(0,0),其中,绝对0°方向为x正方向,绝对90°方向为y正方向,在此基础上构建坐标系,表示绝对位置

    turtle.circle(radius, extent = None)

      根据半径radius绘制extent角度的弧形

      radius:弧形半径,当值为正数时,半径在画笔左侧。值为负数时,半径在画笔右侧。

      extent:绘制弧形的角度。当不给该参数或该参数为None时,绘制整个圆形

    如下实例,

    from turtle import *
    from time import sleep
    
    def go_to(x, y):
       up()
       goto(x, y)
       down()
    
    
    def big_Circle(size):  #函数用于绘制心的大圆
       speed(1)
       for i in range(150):
           forward(size)
           right(0.3)
    
    def small_Circle(size):  #函数用于绘制心的小圆
       speed(1)
       for i in range(210):
           forward(size)
           right(0.786)
    
    def line(size):
       speed(1)
       forward(51*size)
    
    def heart( x, y, size):
       go_to(x, y)
       left(150)
       begin_fill()
       line(size)
       big_Circle(size)
       small_Circle(size)
       left(120)
       small_Circle(size)
       big_Circle(size)
       line(size)
       end_fill()
    
    def arrow():
       pensize(10)
       setheading(0)
       go_to(-400, 0)
       left(15)
       forward(150)
       go_to(339, 178)
       forward(150)
    
    def arrowHead():
       pensize(1)
       speed(1)
       color('red', 'red')
       begin_fill()
       left(120)
       forward(20)
       right(150)
       forward(35)
       right(120)
       forward(35)
       right(150)
       forward(20)
       end_fill()
    
    
    def main():
       pensize(2)
       color('red', 'pink')
       #getscreen().tracer(30, 0) #取消注释后,快速显示图案
       heart(200, 0, 1)          #画出第一颗心,前面两个参数控制心的位置,函数最后一个参数可控制心的大小
       setheading(0)             #使画笔的方向朝向x轴正方向
       heart(-80, -100, 1.5)     #画出第二颗心
       arrow()                   #画出穿过两颗心的直线
       arrowHead()               #画出箭的箭头
       go_to(400, -300)
       write("author:pywjh", move=True, align="left", font=("宋体", 30, "normal"))
       done()
    
    main()

     

  • 相关阅读:
    中国历史年代史的一些总结-缕清上下五千年
    struts2 自己定义表单
    "What's New" WebPart in SharePoint
    Tomcat+Servlet登录页面实例
    JAVA原始的导出excel文件,快捷通用 方便 还能够导出word文档哦
    Android开发 -- Bootloader
    NorFlash、NandFlash、eMMC比较区别【转】
    strspn() 和 strcspn() 函数【转】
    Device Tree(一):背景介绍【转】
    设备树使用手册【转】
  • 原文地址:https://www.cnblogs.com/pywjh/p/9542199.html
Copyright © 2011-2022 走看看