python中的绘图工具有不少,比如Matplotlib等等,但这些只能用来画表格,今天我们来介绍一款可以用来画画的库——turtle。

一、绘图原理

我们通过控制初始位置为(0,0)的海龟进行移动,根据一组函数指令的控制,在平面坐标系中移动,从而在它爬行的路径上绘制了图形。

二、开始绘图

turtle是python自带的库,我们直接import导入即可

import turtle

设置绘图区域属性

绘图区域背景色的设置

turtle.bgcolor('blue')

选择想要的颜色即可

绘图区域大小设置

turtle.setup(width=200,height=100)

参数:

width, height:

输入宽和高为整数时, 表示像素;

为小数时, 表示占据电脑屏幕的比例。

画笔绘制图形

让我们先简单的画一条直线

turtle.forward(100)

forward()是turtle的内置函数,表示从原点向前进多少距离。我们还可以控制画笔的角度让他转弯。与之对应的是backward(),后退多少距离

turtle.backward(100)

turtle.left(60)

turtle.forward(100)

这里的left()就表示画笔的转弯方向和角度了,相应的right则为向右转。

如图我们后退了100的距离然后向左偏转60°又前进了100距离。其他常用参数请参考下面的表格

画笔运动函数

函数

描述

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

画笔绘制的速度范围[0,10]整数

turtle.circle()

画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆

画笔参数

命令

说明

turtle.pensize(width)

绘制图形时的宽度

turtle.pencolor()

画笔颜色

turtle.fillcolor(colorstring)

绘制图形的填充颜色

turtle.color(color1, color2)

同时设置pencolor=color1, fillcolor=color2

turtle.filling()

返回当前是否在填充状态

turtle.begin_fill()

准备开始填充图形

turtle.end_fill()

填充完成;

turtle.hideturtle()

隐藏箭头显示;

turtle.showturtle()

与hideturtle()函数对应

全局控制命令

命令

说明

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

三、for循环语句

如果我们要画一个正方形按照上边的方法代码为

import turtle

turtle.forward(100)

turtle.left(90)

turtle.forward(100)

turtle.left(90)

turtle.forward(100)

turtle.left(90)

turtle.forward(100)

turtle.left(90)

一个简单的四边形就要如此重复,绘制更复杂的图形还这样做的话就显得不科学了,这时候我们就要用到for循环了。使用for循环的语句优化过的代码为

totalTimes=4

for times in range(totalTimes):

turtle.forward(100)

turtle.left(90)

四、简单示例

绘制五角星

import turtle

t=turtle.Pen() #获得画笔

t.hideturtle() #隐藏箭头

t.begin_fill() #填充图形

for x in range(1, 6):

t.forward(100)

t.left(216) #在这里先向右直行,然后左转216°(左下,正五角星度数180/5=36°)

t.end_fill() #填充完成

绘制樱花树

import turtle as T

import random

import time

# 画樱花的躯干(60,t)

def Tree(branch, t):

time.sleep(0.0005)

if branch > 3:

if 8 <= branch <= 12:

if random.randint(0, 2) == 0:

t.color('snow') # 白

else:

t.color('lightcoral') # 淡珊瑚色

t.pensize(branch / 3)

elif branch < 8:

if random.randint(0, 1) == 0:

t.color('snow')

else:

t.color('lightcoral') # 淡珊瑚色

t.pensize(branch / 2)

else:

t.color('sienna') # 赭(zhě)色

t.pensize(branch / 10) # 6

t.forward(branch)

a = 1.5 * random.random()

t.right(20 * a)

b = 1.5 * random.random()

Tree(branch - 10 * b, t)

t.left(40 * a)

Tree(branch - 10 * b, t)

t.right(20 * a)

t.up()

t.backward(branch)

t.down()

# 掉落的花瓣

def Petal(m, t):

for i in range(m):

a = 200 - 400 * random.random()

b = 10 - 20 * random.random()

t.up()

t.forward(b)

t.left(90)

t.forward(a)

t.down()

t.color('lightcoral') # 淡珊瑚色

t.circle(1)

t.up()

t.backward(a)

t.right(90)

t.backward(b)

# 绘图区域

t = T.Turtle()

# 画布大小

w = T.Screen()

t.hideturtle() # 隐藏画笔

t.getscreen().tracer(5, 0)

w.screensize(bg='wheat') # wheat小麦

t.left(90)

t.up()

t.backward(150)

t.down()

t.color('sienna')

# 画樱花的躯干

Tree(60, t)

# 掉落的花瓣

Petal(200, t)

w.exitonclick()

更多关于python的文章,欢迎关注python客栈。

以上就是想学画画?python满足你!的详细内容,更多关于python 画画的资料请关注我们其它相关文章!

本文标题: 想学画画?python满足你!

本文地址: http://www.cppcns.com/jiaoben/python/371139.html

python在屏幕上画画_想学画画?python满足你!相关推荐

  1. python最好用的助手_想学Python的小伙伴注意了,pip工具或许是您最好的助手!本文详解安装教程哦!...

    所谓"千里之行始于足下",本次新睿云将详细讲解python最好的辅助工具pip安装使用的教程! pip是Python包管理工具,该工具提供了对Python 包的查找.下载.安装.卸 ...

  2. 编程语言python用什么笔记本最好_想学想学编程Python之类的用什么电脑?

    看了前面的很多答案,说的都挺有道理 因为python这个语言在我们常用的电脑上面都能够运行 按操作系统来:windows.linux.macos 运行都没有问题 32位或者是64位的系统都是支持的. ...

  3. learn python the hard way结尾_翻译学python---《Learn Python the hard Way》---第一章 绪论

    笨方法是种捷径 在这本书的帮助下,您将轻而易举地完成所有的程序员为了学习一门编程语言而做的事情: 完成所有的练习 准确地输入每个例子的代码 把例子跑起来 这在一开始将会很难,但是如果坚持下去(就会收回 ...

  4. python在windows上安装_在Windows上安装Python | 严佳冬

    1.首先根据自己windows系统的版本,确认是32位还是64位,从Python的官方网站下载Python 3.4对应的程序版本.(网络慢的可以移步国内网盘直接下载:http://pan.baidu. ...

  5. python语言编程基础-Python语言入门详解!快速学成Python!

    原标题:Python语言入门详解!快速学成Python! 很多技能是被职场所需要的,但很可惜... 这些技能在大学中并学习不到. 大学和职场现实存在的横沟对大部分同学来说难以跨越或碰得头破血流... ...

  6. python语言入门-Python语言入门详解!快速学成Python!

    原标题:Python语言入门详解!快速学成Python! 很多技能是被职场所需要的,但很可惜... 这些技能在大学中并学习不到. 大学和职场现实存在的横沟对大部分同学来说难以跨越或碰得头破血流... ...

  7. Python就业前景好不好?为什么学完Python找不到工作?

    近几年,Python从一门默默无闻的编程语言突然蹿红,引来不少编程学习者的青睐.一方面是Python在开发里的广泛使用和流行,另一方面是许多求职者的困惑,Python就业前景好不好?为什么学完Pyth ...

  8. 是python语言保留字的是_以下不属于Python语言保留字的是( )

    [单选题]按照现金管理相关规定,下列各项中,企业不能使用库存现金进行结算的经济业务是( ). [判断题]企业采购商品或接受服务采用银行汇票结算时,应通过"应付票据"科目核算.( ) ...

  9. python wx窗口无法关闭_菜鸟学Python,双手奉上老司机给上路新手总结的Python实战问题…...

    针对Python这一话题每天后台都会有不少小伙伴提出问题,下面我就将这些问题进行汇整,产出"Python实战问题篇",我认为这些问题非常具有代表性,希望可以帮到大家. 第一类问题: ...

最新文章

  1. 基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览
  2. 修改机器名、IP对arcgis server、portal的影响?
  3. Uva 10817 校长的烦恼
  4. java一览删除一条数据_可以删除单条数据,不能再返回列表页面,我使用的是Spring MVC...
  5. 深度学习自学(八):人脸识别主要场景与算法实现
  6. Linux Shell脚本教程(bash)
  7. 跟朋友合伙创业股权怎么分配
  8. web前端开发人员要求,css设置背景图片自适应
  9. 基于Zemax的望远镜物镜设计
  10. LTspice基础教程-008.LTspice PWL设置
  11. php虚拟电话号码,虚拟运营商号码慎入! 七大你要想到的事【2】
  12. NTUD3174NZT5G规格参数介绍
  13. 黄聪:清理微信浏览网站的缓存,Cookie
  14. R分数复现 R-precision评估指标定量 文本生成图像R分数定量实验全流程复现(R-precision)定量评价实验踩坑避坑流程
  15. General information (1)
  16. 微软股价创新高,突破300美元!我入职后,股票翻了10倍!
  17. 用mysqlbinlog命令查看二进制日志文件提示: -bash:mysqlbinlog:command not found
  18. FreeBSD常用命令
  19. 虚部用计算机怎么弄,CASIO这个型号的计算机怎么进行虚数运算
  20. 给定一个字符串,返回最长的元音字母(aeiou)子串的长度

热门文章

  1. 共享内存—shmget参数shmflg详解—IPC_CREAT、IPC_EXCL、0666(对内存的读写执行权限)
  2. 毕业设计-基于微信小程序的医务随访系统
  3. dc005电源插座三脚封装尺寸_DC-005电源插座有三个引脚分别要怎么接?
  4. 谓词下推原理和数据框架的应用
  5. elementUI Form中 勾选框设置必选不提示问题
  6. unity算法面试_Unity面试经验
  7. 广西大学计算机专业课代码,广西大学的代码是什么 广西大学代码
  8. HTTP与Web安全总结
  9. Maven model archetype说明
  10. 在家赚钱的可靠方法,5个方法各个月入过万!