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

目录
  • 官方文档网址
  • 绘图窗口
  • 空间坐标体系
    • 绝对坐标
    • 海龟坐标
  • 角度坐标体系
    • 绝对角度
    • 海龟角度
  • RGB色彩体系
  • 画笔控制函数
  • 运动控制函数
  • 方向控制函数
  • 全局控制命令
  • 示例
    • 蟒蛇绘制
    • 七段数码管日期显示
    • 太阳花
  • 库函数表格整理
    • 画笔运动命令
    • 画笔控制命令
    • 全局控制命令
    • 其他命令

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

官方文档网址

turtle

绘图窗口

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)

海龟坐标

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

库函数表格整理

画笔运动命令

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库内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python绘图Turtle库的安装问题解决

    目录 问题一:直接安装 问题二 Twisted库无法building 也就是不能安装 安装 Turtle 今天有朋友问我 Turtle的安装问题,在这里简单说 在github上我们可以看到Turtle这个库很久没有更新了,里面还有一些python3.6出现的错误,因此可能在python版本比较高的情况下是没法安装成功的,我也是在尝试了一会才发现问题的所在. 问题一:直接安装 出现了语法错误, ok 哪里出现问题去修改,打开文件夹下面的 setup.py 文件 问题二 Twisted库无法buil

  • Python绘图之turtle库的基础语法使用

    前言 Python语言的turtle库是一个直观有趣的图形绘制函数库,是python语言标准库之一. turtle库也叫海龟库,是turtle绘图体系的Python实现.turtle库是Python语言的标准库之一,是入门级的图形绘制函数库. turtle绘图体系:也叫海龟绘图系统,它是在1969年诞生,主要用于程序设计入门的一种绘图方式. Python计算生态 = 标准库 + 第三方库 标准库:随解释器直接安装到操作系统中的功能模块. 第三方库:需要经过安装才能使用的功能模块. turtle官

  • Python turtle实现贪吃蛇游戏

    本文实例为大家分享了Python turtle实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下 # Simple Snake Game in Python 3 for Beginners import turtle import time import random delay = 0.1 # Score score = 0 high_score = 0 # Set up the screen wn = turtle.Screen() wn.title("Snake Game by @Toky

  • python实例小练习之Turtle绘制南方的雪花

    导语 又到了裹紧被子,穿起秋裤的季节! 这些天,我们这边开始下雨了,温度瞬间降了10几度. 遭受了秋天第一场寒潮的"侵袭",我是真的冷,一大早穿上了长裙. 寒风呼啸,大雪飘飘,咳咳咳......说的严重了点儿,还没飘雪呢,思维有点儿远了! 唯一的愿望就是: 我们公司的冷空调能不能稍微收住一点儿,话说还有的同事穿着短衣短裤是怎么熬过来的, 咋没感觉冷呢?后面我还加了一件外套来着!后来想了想:估计是男孩子皮比较厚一点点.[开个玩笑.jpg] 哼唧唧,独冷冷不如众冷冷,木木子来帮你了~大家一

  • Python学习Turtle库画对称勾股树体会分形惊艳

    分形,具有以非整数维形式充填空间的形态特征.通常被定义为"一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状",即具有自相似的性质.分形(Fractal)一词,是芒德勃罗创造出来的,其原意具有不规则.支离破碎等意义.1973年,芒德勃罗(B.B.Mandelbrot)在法兰西学院讲课时,首次提出了分维和分形的设想. 分形是一个数学术语,也是一套以分形特征为研究主题的数学理论.分形理论既是非线性科学的前沿和重要分支,又是一门新兴的横断学科,是研究一类

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

    目录 官方文档网址 绘图窗口 空间坐标体系 绝对坐标 海龟坐标 角度坐标体系 绝对角度 海龟角度 RGB色彩体系 画笔控制函数 运动控制函数 方向控制函数 全局控制命令 示例 蟒蛇绘制 七段数码管日期显示 太阳花 库函数表格整理 画笔运动命令 画笔控制命令 全局控制命令 其他命令 [函数表格整理在最下方] 官方文档网址 turtle 绘图窗口 turtle.setup(width, height, startx, starty) 参数:width, height: 输入宽和高为整数时, 表示像素

  • Python趣味挑战之turtle库绘画飘落的银杏树

    一.导入所需的库 import turtle import random from math import * 二.生成斐波那契数列 斐波那契数列是指前两项的和加起来等于后一项的一个数列,这里使用了两个函数来生成斐波契那数列. def Fibonacci_Recursion_tool(n): #斐波那契数列方法 if n <= 0: return 0 elif n == 1: return 1 else: return Fibonacci_Recursion_tool(n - 1) + Fibo

  • python中turtle库的简单使用教程

    python的turtle库的简单使用 Python的turtle库是一个直观有趣的图形绘制函数库,是python的标准库之一. 一.绘图坐标体系 turtle库绘制图形的基本框架:通过一个小海龟在坐标系中的爬行轨迹绘制图形,小海龟的初始位置在画布中央. turtle.setup(width,height,startx,starty) 1.width,height:为主窗体的宽和高 2.startx,starty:为窗口距离左侧与屏幕左侧像素距离和窗口顶部与屏幕顶部的像素距离. import t

  • Python turtle库(绘制螺旋正方形)

    目录 turtle库绘制螺旋正方形 1.螺旋正方形 2.彩色螺旋正方形 第三方库turtle的应用 1.pip安装turtle库 2.绘图坐标系 3.turtle的画笔控制方法 4.turtle的图形绘制方法 5.简单应用示例 turtle库绘制螺旋正方形 1.螺旋正方形 import turtle #导入turtle库 turtle.pensize(2) #设置画笔的宽度(2) for i in range(100): #循环(画)100次 turtle.fd(i + (i * 2)) #每次

  • Python时间操作之pytz模块使用详解

    目录 前言 1. pytz 模块概述 什么是 pytz 模块 国家时区映射关系表 pytz 模块使用方法 2. pytz 相关方法 3. pytz 时区查询 4. pytz 日期计算 总结 前言 在我们日常生活中,时间概念常伴我们左右.让我们简单的回忆一下自己的一天,大致有以下时间点: 8:00,清晨的阳光照射到床头伴着闹钟,你从睡眠中清醒 8:30,你洗漱完成换好工装,出门上班 9:00,准时坐到工位上,开始一天的工作 12:00,吃午饭午休 14:00,开始下午的工作 ....,时间无处不在

  • 详解Python绘图Turtle库

    Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形. turtle绘图的基础知识: 1. 画布(canvas) 画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置. 设置画布大小 turtle.screensize(canvwidth=None, canvheight=None, bg=None),参数分别

  • python的turtle库使用详解

    python中的turtle库是3.6版本中新推出的绘图工具库,那么如何使用呢?下面小编给大家分享一下. 首先打开pycharm软件,右键单击选择新建一个python file 接下来在弹出的界面中给python文件起一个名字,如下图所示 然后我们运用import命令导入turtle库,如下图所示 接下来编写如下图所示的绘图语句,主要利用turtle进行循环绘图 然后我们右键单击选择Run选项,如下图所示,来执行python文件 最后我们就可以弹出界面中线条在不断的增加,如下图所示 综上所述,在

  • Python利用turtle库绘制彩虹代码示例

    语言:Python IDE:Python.IDE 需求 做出彩虹效果 颜色空间 RGB模型:光的三原色,共同决定色相 HSB/HSV模型:H色彩,S深浅,B饱和度,H决定色相 需要将HSB模型转换为RGB模型 代码示例: #-*- coding:utf-8 –*- from turtle import * def HSB2RGB(hues): hues = hues * 3.59 #100转成359范围 rgb=[0.0,0.0,0.0] i = int(hues/60)%6 f = hues/

  • 利用Python的turtle库绘制玫瑰教程

    turtle的文档:https://docs.python.org/3/library/turtle.html 用Python的turtle库绘图是很简单的,闲来无事就画了一个玫瑰花,下面奉上源码.... 源码: ''' Created on Nov 18, 2017 @author: QiZhao ''' import turtle # 设置初始位置 turtle.penup() turtle.left(90) turtle.fd(200) turtle.pendown() turtle.ri

随机推荐