Python绘图操作之turtle库乌龟绘图全面整理

编辑: admin 分类: python 发布时间: 2021-12-03 来源:互联网
目录
  • 官方文档网址
  • 绘图窗口
  • 空间坐标体系
    • 绝对坐标
    • 海龟坐标
  • 角度坐标体系
    • 绝对角度
    • 海龟角度
  • RGB色彩体系
    • 画笔控制函数
      • 运动控制函数
        • 方向控制函数
          • 全局控制命令
            • 示例
              • 蟒蛇绘制
              • 七段数码管日期显示
              • 太阳花
            • 库函数表格整理
              • 画笔运动命令
              • 画笔控制命令
              • 全局控制命令
              • 其他命令

            【函数表格整理在最下方】

            官方文档网址

            turtle

            绘图窗口

            \g)]

            turtle.setup(width, height, startx, starty)

            参数:width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例,(startx, starty): 这一坐标表示矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心。

            • setup设置窗体大小和位置
            • 4个参数中后两个可选(默认居中)
            • setup()不是必须的

            turtle.screensize(canvwidth=None, canvheight=None, bg=None)

            参数分别为画布的宽(单位像素), 高, 背景颜色。

            如:turtle.screensize(800,600, “green”)

            ​ turtle.screensize() #返回默认大小(400, 300)

            空间坐标体系

            绝对坐标

            [)]

            【demo】

            import turtle
            turtle.goto(100, 100)
            turtle.goto(100, -100)
            turtle.goto(-100, -100)
            turtle.goto(-100, 100)
            turtle.goto(0, 0)
            

            []

            海龟坐标

            [)]

            [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HIs9TdaP-1633154999063)(C:\Users\Joy Zhang\AppData\Roaming\Typora\typora-user-images\image-20211002134938669.jpg)]

            turtle.fd(d)

            turtle.bk(d)

            turtle.circle(r, angle)(以海龟为中心,向左转)

            角度坐标体系

            绝对角度

            ]

            turtle.seth(angle)

            • seth()改变海龟行进方向
            • seth()只改变方向不行进
            • angle 绝对度数

            在这样基础上,继续turtle.fd(d)

            海龟角度

            [)]

            turtle.left(angle)

            turtle.right(angle)

            【demo】

            import turtle
            turtle.left(45)
            turtle.fd(150)
            turtle.right(135)
            turtle.fd(300)
            turtle.left(135)
            turtle.fd(150)
            turtle.done()
            

            [)]

            RGB色彩体系

            每色取值范围0-255整数或者0-1小数。

            []

            []

            turtle库默认采用RGB小数值,可以使用turtle.colormode(mode)可切换。

            • 1.0: RGB小数值
            • 255:RGB整数值

            color参数的三种形式

            • 颜色字符串 turtle.pencolor("purple")
            • RGB的小数值:turtle.pencolor(0.63, 0.13, 0.94)
            • RGB的元组值:turtle.pencolor((0.63, 0.13, 0.94))

            画笔控制函数

            把海龟想象成画笔,画笔操作后一直有效,一般成对出现。

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

            将画笔抬起,海龟在飞行。

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

            落下画笔,海龟落下。

            • turtle.pensize(width) 别名:turtle.width(width)

            画笔宽度,海龟的腰围。

            • turtle.pencolor(color) color为颜色字符串 或 r,g,b值

            画笔颜色,海龟在涂装

            • turtle.speed(speed),设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。
            • turtle.fillcolor(colorstring)绘制图形的填充颜色
            • turtle.hideturtle() 隐藏画笔的turtle形状
            • turtle.showturtle() 显示画笔的turtle形状

            运动控制函数

            • 走直线:turtle.forward(d) 别名 turtle.fd(d)

            d的单位是像素,向前行进,海龟走直线。

            d是行进距离,可以是负数。

            • turtle.backward(distance)向当前画笔相反方向移动distance像素长度
            • 走曲线:turtle.circle(r, extent = None)

            根据半径r绘制extent角度(默认360)的弧形

            圆心默认在海龟左手侧,如果r是负的,圆心在海龟右侧。

            • dot(r) 绘制一个指定直径和颜色的圆点

            []

            方向控制函数

            只改变行进方向,不会改变路线。

            分为绝对角度和海龟角度。

            • turtle.setheading(angle) 别名 turtle.seth(angle)

            改变行进方向,海龟走角度(改变绝对角度)

            )]

            • turtle.left(angle) 海龟向左转
            • turtle.right(angle)海龟向右转

            全局控制命令

            • turtle.clear()清空turtle窗口,但是turtle的位置和状态不会改变
            • turtle.reset() 清空窗口,重置turtle状态为起始状态
            • turtle.undo() 撤销上一个turtle动作
            • turtle.isvisible() 返回当前turtle是否可见
            • turtle.write(s [,font=("font-name",font_size,"font_type")])写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项

            示例

            蟒蛇绘制

            【demo】

            import turtle
            turtle.setup(650, 350, 200, 200)
            turtle.penup()
            turtle.fd(-250)
            turtle.pendown()
            turtle.pensize(25)
            turtle.pencolor("purple")
            turtle.seth(-40)
            for i in range(4):
                turtle.circle(40, 80)
                turtle.circle(-40, 80)
            turtle.circle(40, 80/2)
            turtle.fd(40)
            turtle.circle(16, 180)
            turtle.fd(40*2/3)
            turtle.done()
            

            ]

            七段数码管日期显示

            import turtle
            import time
            def drawGap(): # 绘制数码管间隔
                turtle.penup()
                turtle.fd(5)
            def drawLine(draw):  # 绘制单线
                drawGap()
                turtle.pendown() if draw else turtle.penup()
                turtle.fd(40)
                drawGap()
                turtle.right(90)
            def drawDigit(digit): # 绘制单个数字
                drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False)
                drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False)
                drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False)
                drawLine(True) if digit in [0,2,6,8] else drawLine(False)
                turtle.left(90)
                drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False)
                drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False)
                drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False)
                turtle.left(180)
                turtle.penup()
                turtle.fd(20)
            def drawData(date):
                turtle.pencolor("red")
                for i in date:
                    if i == '-':
                        turtle.write("年", font=("Arial", 18, "normal"))
                        turtle.pencolor("green")
                        turtle.fd(40)
                    elif i == '=':
                        turtle.write("月", font=("Arial", 18, "normal"))
                        turtle.fd(40)
                    elif i == '+':
                        turtle.write("日", font=("Arial", 18, "normal"))
                    else:
                        drawDigit(eval(i))
            def main():
                turtle.setup(800,350,200,200)
                turtle.penup()
                turtle.fd(-300)
                turtle.pensize(5)
                turtle.color("purple")
                drawData(time.strftime("%Y-%m=%d+", time.gmtime()))
                turtle.hideturtle()
                turtle.done()
            main()
            

            [

            太阳花

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

            img

            库函数表格整理

            画笔运动命令

            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®

            绘制一个指定直径和颜色的圆点

            画笔控制命令

            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形状

            全局控制命令

            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参数也是可选项

            其他命令

            turtle.mainloop()或turtle.done()

            启动事件循环 -调用Tkinter的mainloop函数。

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

            turtle.delay(delay=None)

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

            turtle.begin_poly()

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

            turtle.end_poly()

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

            turtle.get_poly()

            返回最后记录的多边形。

            到此这篇关于Python绘图操作之turtle库乌龟绘图全面整理的文章就介绍到这了,更多相关Python turtle库内容请搜索hwidc以前的文章或继续浏览下面的相关文章希望大家以后多多支持hwidc!

            【转自:http://www.1234xp.com/lg.html转载】