在Python语言中我们是通过利用turtle库来绘图的,turtle中文意思是海龟,turtle库是turtle绘图体系的Python实现,同时turtle库也是Python语言的标准库之一。

绘图的过程其实就是控制海龟移动的过程,相当于我们平时用铅笔画图一样,这个铅笔就相当于海龟,我们通过控制这个铅笔来画出许多美丽的图形。
一.位置
绘制一个图形首先需要一个窗体,在操作系统中表现为一个窗口,在窗口中使用的最小单位是像素,比如我们绘制一条长为100的线段,那么这个线段的长为100像素。

上图所示,在电脑屏幕左上角画蓝色圆圈的是屏幕坐标系的坐标原点(0,0),而画红圈的是窗口坐标系的原点,startx和starty分别是窗口左边缘和上边缘到电脑屏幕边缘的距离,height和width分别是是窗口高和宽。我们用turtle.setup(width,height,startx,starty)函数来描述窗口的位置与大小。要注意的是窗体的高和宽是窗体本身的高和宽,而startx和starty是窗口左上角相对于屏幕左上角的坐标,startx和starty这两个参数可选的。

现在该我们的主角海龟登场了,它也有自己的坐标系,分别是空间坐标系角度坐标系。其中空间坐标系分为绝对坐标海龟坐标,角度坐标系也分为绝对坐标海龟坐标

1.turtle空间坐标系:绝对坐标

海龟一开始处于窗口的中心,利用turtle.goto(海龟的横坐标,海龟的纵坐标)函数控制海龟的移动,goto我们可以理解成到达,连起来就是海龟到达。说明一下:下图中的那个箭头就是海龟,呃,好像长得并不像海龟,箭头的方向就是海龟的头朝的方向。

import turtle
turtle.goto(50,50)
turtle.goto(100,50)
turtle.goto(150,150)


2.turtle空间坐标系:海龟坐标

无论海龟怎么运动,它的头朝的那个方向永远是前方。如下图所示,我们先让海龟以沿某一点按40像素的半径长逆时针转了80度,此时海龟的头朝的那个方向为下图的箭头的方向,就不再是之前朝X轴的方向了,这时我们再让这个海龟前进100个像素就得到该图。

import turtle
turtle.circle(40,80)        /*半径为正,表示圆心在海龟的上方,半径为负,表示圆心在海龟的下方*/
turtle.fd(100)


3.turtle角度坐标体系:绝对坐标

有了上述的基础,我们也不难理解这个角度坐标系下的绝对坐标,这里先给出一个函数:turtle.seth(角度),意思是让海龟旋转某一角度,记住仅仅是旋转,不改变海龟的位置。

import turtle
turtle.seth(40) /*数值为正表示逆时针旋转40度*/


4.turtle角度坐标系:海龟坐标

turtle.left(angle)的意思是让海龟向左转过angle度,turtle.right(angle)让海龟右转angle度,这里的左和右是相对于海龟而言。

最基础的一部分讲完了,这里我们总结上述的函数,以便给读者加深印象。
turtle.goto(x,y) 让海龟到达(x,y)处
turtle.bk(d) 让海龟退d个像素
turtle.fd(d) 让海龟前进d个像素
turtle.circle(r,angle) 让海龟以r为半径旋转angle度
turtle.seth(angle) 让海龟原地旋转angle度
turtle.left(angle) 让海龟向左原地旋转angle度
turtle.right(angle) 让海龟向右原地旋转angle度

二.颜色
我们在绘图时不可能只用一种颜色,所以Python提供了RGB色彩模式。RGB其实就是red green blue这三个单词取首字母组合在一起所形成的。不同比例的红色,蓝色和绿色混在一起可以构成世界上所有的颜色,比如天蓝色,棕色,粉红色。RGB每色取值范围是0-255整数或0-1小数。

白色 255,255,255 或 1,1,1
黄色 255,255,0 或1,1,0
蓝色 0,0,255 或 0,0,1
下面给出超链接,在这里就不一一列举了。
RGB色彩
给所绘图形增加颜色要用到turtle.colormode()函数。
例如:turtle.colormode(255,255,255)

三.绘图核心
细心的读者会发现利用上述所讲的各种函数绘画出的是连续的直线或曲线(相当于一笔画),也就是说我们用笔写一行字,但是在写的过程中笔不离纸面,这样我们写出来的字都是连体字,显然影响美观而且别人并不认识。turtle.pendown()和turtle.penup()这两个函数可以解决这个问题。

import turtle
turtle.penup()      /*抬起画笔,海龟在天上飞*/
turtle.fd(100)      /*海龟在天上移动100个像素*/
turtle.pendown()    /*落下画笔,海龟在爬行*/

打印上面4行代码,海龟从窗口中心向前走100个像素到达A点,且A点与窗口中心之间不会留下横迹。turtle.penup()与turtle.pendown()是成对出现的。我们还可以通过turtle.pensize()函数turtle.pencolor()函数分别控制画笔的粗细(海龟的腰围)和画笔的颜色(海龟在涂装)。

 import turtleturtle.pensize(20)     /*设置画笔的宽度,也就是海龟的腰围*/turtle.color("red")        /*设置画笔的颜色*/turtle.fd(100)turtle.seth(45)turtle.bk(200)

现在介绍最后一个绘图中必不可少的环节:循环。

for<变量>in range(<函数名>)<被循环执行的语句>

例:

for j in range(7):   /*注意该条语句结束有一个冒号*/print(j)

输出结果:

0    /*从0开始*/
1
2
3
4
5
6   /*结束数字为7减去1*/

我们也可以直接用range(),range(5)输出数字0,1,2,3,4,range(2,5)输出为2,3,4。

四.练习
关于turtle绘图就讲到这里,现在我们来绘制一条蟒蛇。

import turtle
turtle.penup()
turtle.bk(100)
turtle.pendown()
turtle.pensize(30)
turtle.pencolor("blue")
turtle.seth(-40)
for j in range(5):turtle.circle(40,80)turtle.circle(-40,80)
turtle.circle(40,40)
turtle.fd(50)
turtle.circle(15.180)
turtle.fd(30)

图形如下

利用Python语言绘图相关推荐

  1. python爬去百度文库_利用Python语言轻松爬取数据[精品文档]

    利用 Python 语言轻松爬取数据 对于小白来说,爬虫可能是一件非常复杂. 技术门槛很高的事情. 比如有人认为学爬虫必须精通 Python ,然后哼哧哼哧系统学习 Python 的每个知识点,很久之 ...

  2. Python:利用python语言绘制多个子图经典案例、代码实现之详细攻略

    Python:利用python语言绘制多个子图经典案例.代码实现之详细攻略 目录 利用python语言绘制多个子图代码实现.经典案例 1.绘制多个子图框架 多个子图绘制的经典案例 1.绘制多个直方图 ...

  3. Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法

    Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)-命令提示符cmd的几种方法 目录 利用python语言实现调用内部命令-命令提示符cmd的几种方法 T1. ...

  4. python爬取百度文库_利用Python语言轻松爬取数据

    利用 Python 语言轻松爬取数据 对于小白来说,爬虫可能是一件非常复杂. 技术门槛很高的事情. 比如有人认为学爬虫必须精通 Python ,然后哼哧哼哧系统学习 Python 的每个知识点,很久之 ...

  5. 利用Python语言编程,完成猜数游戏,系统随机产生一个1到100的数字num1,用户输入一个数字guess,如果没有猜对,根据系统给出的提示重新猜数,直到才对为止。

    利用Python语言编程,完成猜数游戏,系统随机产生一个1到100的数字num1,用户输入一个数字guess,如果没有猜对,根据系统给出的提示重新猜数,直到才对为止. 要求:(1)系统每次都要给出新的 ...

  6. 利用Python语言编程,解决鸡兔同笼问题,已知同一个笼子里鸡和兔总共有h只,鸡和兔的脚数总共有f只,其中h和f需要用户输入,求鸡和兔各有多少只。

    利用Python语言编程,解决鸡兔同笼问题,已知同一个笼子里鸡和兔总共有h只,鸡和兔的脚数总共有f只,其中h和f需要用户输入,求鸡和兔各有多少只. 提示:利用循环,采用枚举法. 要求:当输入的h和f没 ...

  7. Cloud Computing:基于无影云电脑利用Python语言实现绘制“可爱小老虎”虎年快乐及无影云电脑简介、应用场景、使用体验(五步快速上手)分享图文教程之详细攻略

    Cloud Computing:基于无影云电脑利用Python语言实现绘制"可爱小老虎"虎年快乐及无影云电脑简介.应用场景.使用体验(五步快速上手)分享图文教程之详细攻略 目录 无 ...

  8. 利用python语言进行相机标定

    利用python语言进行相机标定 目录 利用python语言进行相机标定 一.相机标定相关原理 1.相机标定简介 2.坐标映射 2.1图像坐标系 1)图像坐标系(Pixel coordinate sy ...

  9. 利用Python海龟绘图画一个世界杯的足球

    利用Python海龟绘图画一个世界杯的足球 花有重开日 人无再少年 四年一次的世界杯快要结束,为了纪念此次世界杯,特意用Python画了一个足球. 1.设计思路以及实现效果 世界杯足球实现思路: 首先 ...

最新文章

  1. 百度地图轨迹回放,自定义路书,边走边画线
  2. git从master转到开发分支
  3. Linux echo命令:给文本着色/背景色/文本闪动
  4. 输出1/n(是循环小数的,只输出第一个循环节)
  5. 10个关于linux中Squid代理服务器的实用面试问答
  6. D. Omkar and Medians
  7. linux内核博大精深,Linux Kernel里的cpu_to_le32是干啥的?
  8. SQLite学习(八) - SQLite C编程接口
  9. tomcat运行指定JDK,不运行环境变量配置的JDK
  10. 千元内无敌!红米两款新机发布 小米9侧目?
  11. 如果在安卓后台杀死程序怎么进行保存
  12. react 动态修改路由_react动态路由以及获取动态路由
  13. 模电与数电的基本知识 (学习备用)
  14. 简单几步:教你利用NAS设备存储云盒子企业网盘的所有数据
  15. 女子人身安全防卫指南
  16. php盘古分词,百度分词技术_百度输入法分词怎么关_百度分词原理
  17. teamviewer被检测为商业用途解决方法
  18. Zabbix -- 客户端安装以及如何添加数据库的动态监控视图
  19. FIFO页面置换算法详解
  20. IOTE 2019物联网嘉年华在深圆满落幕

热门文章

  1. flex 为之疯狂的
  2. [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
  3. systemd的unit配置文件详解
  4. 文件 MIME 类型
  5. php和apache其实没有什么关系
  6. Android手机渗透测试神器 zANTI(汉化版)
  7. html5实现安卓的手写功能,html5 canvas手写字代码(兼容手机端)(示例代码)
  8. 去掉字符串前面或后面的0;
  9. 程序员副业200万,主业40万!不禁感叹:工作的意义是什么?
  10. (附源码)计算机毕业设计SSM基于WEB的网上零食销售系统