Python

Python开发

Python语言

python库之turtle(图形绘制) 开启新的快乐源泉

相信有不少人学习python 都是听了老前辈的推荐

“学python好,python有趣的代码多”

比如说画一只小狮子

这就是今天想要介绍的绘制图形库-turtle

如果也想这样画一只小狮子,或者其他的小动物那就赶紧点赞收藏学起来吧

一、什么是turtle库

turtle库是python的基础绘图库

这个库被介绍为一个最常用的用来给孩子们介绍编程知识的方法库,

其主要是用于程序设计入门,是标准库之一,利用turtle可以制作很多复杂的绘图。

简单理解turtle库就是一个用于图形绘制的基础库。

可能刚刚就有人有疑问,为什么绘画库不叫painting,而叫turtle?这就不得不说turtle库的思想。

在画布上,默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方向小乌龟。

二、有哪些函数?

1.画布

既然说turtle是一个绘图库,那么怎么能不说画布呢?

画布函数有两个

第一个为screensize()其中包含三个参数,它们分别为

canvwidth=None,画布的长度

canvheight=None,画布的宽度

bg=None,画布的背景色

画布是必不可少的,为防止有些粗心鬼忘设定,所以默认无设定时为一个400*300的白画布

第二个为setup(),有四个参数

width、height两者表示为画布的长与宽,当传参为整数时,表示像素长度单位,当传参为小数时,表示与屏幕的比例

starX,starY则表示一组坐标值,坐标表示画布左上角的位置,若为空则默认为屏幕中心

两个函数各有优劣,screensize()可以设定背景色,setup可以设定位置,如下图所比较

importturtle

turtle.screensize(400,300,"green")

turtle.done()

importturtle

turtle.setup(600,400,100,100)

turtle.done();

2.画笔

turtle绘图中,就是使用位置方向描述小乌龟(画笔)的状态。

所以画笔一共有三个基础属性函数,分别为

turtle.pensize():设置画笔的宽度;

turtle.pencolor(); 设置画笔的颜色,颜色采用RGB,也可以直接输入对应颜色如“red”,若无参数时,采用当前颜色,

turtle.speed(); 设置画笔的速度,从1`10,数字越大则速度越快。

代码如下设定

importturtle

turtle.pensize(5)

turtle.pencolor("green")

turtle.forward(100)

turtle.done();

3.操作

操作可就相对来说多了一些,这里也只简单罗列几种常用的

(1)画笔运动命令

pendown()与penup()这两个函数可是哥俩,一目了然的意思,一个负责抬起画笔,一个负责落下画笔

表示画笔状态的转换,自然也就不需要传参数进入了

forword()函数用来控制画笔向正方向移动(正方向默认为东)

有向正方向,自然就有负方向函数backward()

还有就是goto函数,就像直译,表示将画笔移动到坐标轴的某处,goto传参数为坐标信息

就像刚刚介绍的那样,turtle使用的为极坐标方式,参数为方向与长度

所以left与right表示为顺时针与逆时针,传入参数为角度

(2)画笔控制命令

画笔控制命令相对来说比较少,主要操作便是填充

turtle.fillcolor(colorstring)  绘制图形的填充颜色

turtle.begin_fill()准备开始填充图形

turtle.end_fill()填充完成

(3)    全局控制命令

turtle.clear() 清除窗口绘制图形

turtle.undo() 撤销上一个turtle动作

还有更多指令没有那么常见,便将它放在文章末尾,还往各位看客收藏之后记得帮我点个赞

接下来我们开始实战练习_画小狮子

从效果图中,我们可以看出,首先绘制的为小狮子的头发

那么我们先定义头发函数 def hair()

很明显画笔的起始位置不在画布中央,在(-50,150)处

这时候我们应当怎么办?自然是移动过去画笔

怎么移动画笔?这里两种方式都可以

第一种 偏转角度,在先前移动

turtle.left()+turtle.forward()

但是这种方法需要知道角度和长短,相对来说不是很好算 tan α = -3,l^2=(-50)^2+(150)^2

第二种  直接到达目的地

就是通过goto函数直接到达(-50,150)比较简单直接

需要注意的是,画笔直接过去会留下“画笔的印记”

所以应该先 抬起画笔,移动过去,再落下画笔

如图所示,小狮子的头发为10个同等的弧组成,这就需要用到for循环语句与circle()函数 setheading();

circle()函数为画圆而准备,需要传入半径,若为圆弧则还需要加入角度参数,当参数为正时从画笔左侧半径处开始顺时针画,当参数为负时从右侧开始逆时针画

需要注意的是要想让多个半圆围成,需要不断修改正方向,十个圆弧,所以每次需要偏转360/10,设计代码如下所示

defhair():

t.penup()

t.goto(-50, 150)

t.pendown()

t.fillcolor('#a2774d')

t.begin_fill()for j in range(10):

t.setheading(60 - (j * 36))

t.circle(-50, 120)

t.end_fill()

有了画头发的经验,画脸相对来说好理解了不少

脸部有哪些,眼睛,鼻子,嘴巴,耳朵,下巴。

其中眼睛,耳朵为相互对称的部分,所以可以单独拿出来,组成函数,到时候传参数只要分别传1与-1两个相反数即可保证画的对称和谐。

按照效果图的顺序开始,画完头发后该画耳朵,之后开始重复工作,抬起画笔,移动到指定位置,设计如何绘画,记得填充状态和画笔的起落状态。

最后送上代码如下,和turtle工具图。希望各位大佬喜欢,加个关注。

(1)    画笔运动命令

命令

说明

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

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

(2)     画笔控制命令

命令

说明

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

(3)    全局控制命令

命令

说明

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

(4)    其他命令

命令

说明

turtle.mainloop()或turtle.done()

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

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

turtle.mode(mode=None)

设置乌龟模式(“standard”,“logo”或“world”)并执行重置。如果没有给出模式,则返回当前模式。

模式

初始龟标题

正角度

standard

向右(东)

逆时针

logo

向上(北)

顺时针

turtle.delay(delay=None)

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

turtle.begin_poly()

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

turtle.end_poly()

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

turtle.get_poly()

返回最后记录的多边形。

小狮子代码如下

importturtle as tdefhair():

t.penup()

t.goto(-50, 150)

t.pendown()

t.fillcolor('#a2774d')

t.begin_fill()for j in range(10):

t.setheading(60 - (j * 36))

t.circle(-50, 120)

t.end_fill()defface():

t.penup()

t.goto(0,100)

t.pendown()

t.fillcolor('#f2ae20')

t.begin_fill()

t.setheading(180)

t.circle(85)

t.end_fill()#下巴

t.circle(85, 120)

t.fillcolor('white')

t.begin_fill()

t.circle(85, 120)

t.setheading(135)

t.circle(100, 95)

t.end_fill()defears(dir):

t.penup()

t.goto((0-dir)*30, 90)

t.setheading(90)

t.pendown()

t.fillcolor('#f2ae20')

t.begin_fill()

t.circle(dir*30)

t.end_fill()

t.penup()

t.goto((0-dir)*40, 85)

t.setheading(90)

t.pendown()

t.fillcolor('white')

t.begin_fill()

t.circle(dir*17)

t.end_fill()defnose():

t.penup()

t.goto(20, 0)

t.setheading(90)

t.pendown()

t.fillcolor('#a2774d')

t.begin_fill()

t.circle(20)

t.end_fill()defeye(dir):

t.penup()

t.goto((0-dir)*30, 20)

t.setheading(0)

t.pendown()

t.fillcolor('black')

t.begin_fill()

t.circle(10)

t.end_fill()defmouth():

t.penup()

t.goto(0, 0)

t.setheading(-90)

t.pendown()

t.forward(50)

t.setheading(0)

t.circle(80, 30)

t.penup()

t.goto(0,-50)

t.setheading(180)

t.pendown()

t.circle(-80, 30)

hair()

ears(1)

ears(-1)

face()

eye(1)

eye(-1)

mouth()

nose()

t.done()

本篇博客重点在介绍各个函数,若小狮子绘制仍然有问题,可以留言,有需要可以做一期专门的博客。

谢谢观看

内容来源于网络,如有侵权请联系客服删除

python 库画小动物大全_python库之turtle(图形绘制) 开启新的快乐源泉相关推荐

  1. python turtle工具箱_python 库之 turtle(图形绘制) 开启新的快乐源泉

    python 库之 turtle(图形绘制) 开启新的快乐源泉 相信有不少人学习 python 都是听了老前辈的推荐 "学 python 好, python 有趣的代码多" 比如说 ...

  2. python代码画小动物大全_Python画小猪佩奇肖像,小迷妹被萌哭了!附源码

    # coding:utf-8 import turtle as t t.pensize(4) t.hideturtle() t.colormode(255) t.color((255,155,192) ...

  3. 用python画小动物大全_python3用turtle库进行绘制小猪佩奇图案

    晚上闲着无事,深入学习这个turtle用法,就做了小猪佩奇图 附上代码: # coding: utf-8 #功能:绘画小猪佩奇 import turtle as t t.screensize(400, ...

  4. 用python画小动物大全_幼儿园大班美术优质课教案《奇妙的圆》

    大班美术优质课教案<奇妙的圆> 活动目标: 1.引导幼儿在圆形的基础上进行添画,使之变成各种可爱的小动物. 2.发展幼儿的想象力和创造力. 活动准备: 1.课前已认识有各种圆形组成的动物. ...

  5. python库怎么绘画_python库之turtle(图形绘制) 开启新的快乐源泉

    相信有不少人学习python 都是听了老前辈的推荐 "学python好,python有趣的代码多" 比如说画一只小狮子 这就是今天想要介绍的绘制图形库-turtle 如果也想这样画 ...

  6. python turtle库画图案-python库之turtle(图形绘制) 开启新的快乐源泉

    相信有不少人学习python 都是听了老前辈的推荐 "学python好,python有趣的代码多" 比如说画一只小狮子 这就是今天想要介绍的绘制图形库-turtle 如果也想这样画 ...

  7. 用python画小动物代码_python用turtle画一只小猪佩奇,并打包为exe

    from turtle import * importtimedef nose(x, y): #鼻子 penup() #提起笔 goto(x, y) #定位 pendown() #落笔,开始画 set ...

  8. python编辑简单小游戏大全_Python制作简单的滑雪小游戏

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块.关注公众号:Python学习指南,回复"滑雪"获取源码 环境搭建 安装Pyt ...

  9. 【转】python改文件夹名称大全_python文件和目录操作方法大全(含更改文件夹下所有文件名称的实例)

    原文:​​​​​​ ​​​​​​​​​​​​​​​​​​​python改文件夹名称大全_python文件和目录操作方法大全(含更改文件夹下所有文件名称的实例)..._心失荒野的博客-CSDN博客 一. ...

最新文章

  1. Android -- 带你从源码角度领悟Dagger2入门到放弃(三)
  2. 轻量级 Kubernetes 发行版 k3s 1.0.0 发布!
  3. 深究Java中的RMI底层原理
  4. GitHub更新Fork代码
  5. c语言张振国实验报告,基于VisualC的黄金分割法程序设计实验报告.doc
  6. 2018.08.22 NOIP模拟 string(模拟)
  7. Linq-查询上一条下一条
  8. python右对齐 数字_python format格式化进阶-左对齐右对齐 取位数
  9. java excel 冻结_poi excel 常用操作 [冻结、合并、链接]
  10. 装机配置相关---激活win7旗舰版 office
  11. h264流头类型分辨方法
  12. 火狐浏览器上网速度慢解决方法
  13. 树莓派Pico开发板扩展ESP01S无线WiFi模块通信实践
  14. 动手实现简易端口扫描器——PortScanner
  15. P1567_统计天数
  16. 【全网热点】打造全网最全爱心代码仓库【火速领取爱心】
  17. MyBatisPlus:实现DAO的增删改查分页+属性设置,代码生成器(代码模板)
  18. 用于夜视和监控的图像增强方法
  19. 记录--Three.js的简单使用,Three.js在vue3.x中导入.pcd三维模型文件
  20. 这是一个三年前就应该开的博客

热门文章

  1. Golang 中的微服务 - 第二部分 - Docker 和 go-micro
  2. 老师,这是我的第一次个人项目烦请过目不忘
  3. 图像处理-神奇的卷积核
  4. python redis list操作_使用Python操作redis
  5. 领导者需要掌握的艺术
  6. 组队学习笔记Task1:论文数据统计
  7. QQ绿标域名怎么生成?
  8. 半入耳式蓝牙耳机哪款好?2022半入耳式蓝牙耳机性价比排行
  9. 台式计算机突然黑屏几秒钟,台式电脑突然黑屏主机在运行屏幕没显示
  10. 员工 9 次旷工后被解除劳动合同,脉脉被判赔 24 万!