由绘制python蟒蛇实例来整体掌握turtle绘图方法

您所在的位置:网站首页 海龟画图写字 由绘制python蟒蛇实例来整体掌握turtle绘图方法

由绘制python蟒蛇实例来整体掌握turtle绘图方法

#由绘制python蟒蛇实例来整体掌握turtle绘图方法 | 来源: 网络整理| 查看: 265

经典案例:python蟒蛇的绘制

话不多说,直接上代码,先整体感知turtle图形绘制。

print("python蟒蛇的绘制") import turtle as t#引入turtle库函数来实现绘图功能 #并使用import...as...使turtle起个小名为t,使代码简洁 t.setup(900,400,200,200)#建立一个宽度为900像素高度为400像素的画布 #窗体左上角坐标为(200,200),以编译器屏幕左上角为绝对原点 t.penup()#画笔抬起 t.fd(-200)#使“小海龟”即鼠标初始位置向反方向移动200像素 t.pendown()#画笔落下 t.pensize(25)#调整画笔粗细为25像素 t.color("green")#调整画笔颜色为绿色 t.seth(-40)#使“海龟”初始朝向为负40度 for i in range(5):#range(5)代表0,1,2,3,4,是for循环的迭代对象 t.circle(40,80)#表示以40为半径,画出角度为80度的弧线 t.circle(-40,80)#表示以-40像素为半径即与刚才方向相反画出80度角的弧线 t.circle(40,40) t.fd(20)#向前运动20像素,形成脖子 t.circle(32,180)#形成头 t.fd(40*2/3) t.done()#绘画结束

运行结果:

调试结果 ———————————————————— 是不是感觉就这点小图形十几行代码究竟能蕴含多少turtle绘图知识呢?别说,python蟒蛇的绘制作为图像绘制的经典案例,其基本包含了turtle绘图的大数操作与知识。下面我将详细介绍turtle绘图的具体方法。

————————————————————

前言: turtle库函数是python中最常用也是最基本的绘图库函数。turtle意为”海龟”,可以想象每一次的作画都是调用turtle中的库函数使海龟移动,形成痕迹,进而画出各种图形。下面详细介绍控制画笔(海龟)的各种函数。

————————————————————

(1)建立画布函数turtle.setup(a,b,c,d)

◆a表示画布的宽度,b表示画布的高度,c和d是指画布左上角以编译器界面左上角为原点的横纵坐标。

————————————————————

在这里插入图片描述 #画布的建立 import turtle as t t.setup(800,400,200,300)

调试结果:

在这里插入图片描述 ———————————————————— (2)画笔控制函数turtle.pensize(),turtle.pencolor(),turtle.penup(),turtle.down()

———————————————————— 1.turtle.pensize(x) :顾名思义,控制画笔的粗细为x像素 ————————————————————

2.turtle.pencolor(): 控制画笔颜色的函数,其参数有三种方式: 第一:◆可以是表示颜色的字符串,且字符串要小些形式。如:turtle.pencolor(“purple”)表示使画笔颜色为紫色。 第二:◆RGB颜色体系中的小数值或者整数值,如:turtle.pencolor(0.63,0.13,0.94)或者turtle.pencolor(160,32,240)均表示使画 笔颜色为紫色。直接给出RGB颜色体系中的三个通道的值来匹配对应的颜色。 第三:◆RGB的元组值,即turtle.pencolor((0.63,0.13,0.94))将其变为一个元组类型的值来引用。 ————————————————————

★RGB色彩体系介绍★:

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

———————————————————— 3.turtle.penup() : 是画笔抬起,即海龟在飞行,turtle.pendown(): 画笔落下,即海龟落地,二者主要是为了调整海龟的初始位置,即画笔的起点,从哪里开始画。在画笔抬起期间,一切的运动行进均不在画布上留下痕迹。 ————————————————————

★注意:画笔设置后一直有效,直至下一次重新设置。

————————————————————

(3)运动控制函数 turtle.fd(x),turtle.circle(r,extend)和turtle.goto(x,y)

———————————————————— 1.turtle.fd(x) 函数:表示向前运动x个像素的距离,注意x可以为负,即表示向当前的反方向运动x个像素的距离。 作用:使海龟走直线。 ———————————————————— 2. turtle.circle(r,extend)函数:表示以r为半径绘制一个extend角度的弧形。默认圆心在海龟左侧r距离的位置,-r则表示以海龟右侧r位置为圆心开始绘制。角度默认360度为整圆。 作用:使海龟走曲线 ———————————————————— 3.turtle.goto(x,y)函数:表示让海龟去到以初始位置为原点建立坐标系的坐标为(x,y)的地点 作用:使海龟走直线,点与点的连线

▲绝对坐标如图:

在这里插入图片描述

▲运动控制函数小例子:

运动控制函数示例 import turtle as t t.circle(100) t.fd(200) t.fd(-400) t.circle(100,180) t.goto(0,0)

运行结果:

在这里插入图片描述 ———————————————————— (4)方向控制函数: turtle.seth(angle),turtle.left(angle),turtle.right(angle)

———————————————————— 第一:绝对角度下的转向:即以海龟初始位置为原点所建立的坐标系下的视角与角度,见下图:

在这里插入图片描述 ———————————————————— ●turtle.seth(45)表示使海龟转向绝对角度中的45度方向 ●turtle,seth(-135)表示使海龟转向绝对角度下的-135度方向 如图: 在这里插入图片描述 ———————————————————— 第二:海龟角度下的转向,容易理解。 turtle.left(x),turtle.right(y)表示让海龟分别向左与向右转动x,y 角度。海龟视角如下: 在这里插入图片描述 ———————————————————— (5)import 引用库函数的使用

———————————————————— 1. 首推import…as…函数,即将所引用的库函数起个小名,使得代码简洁★

在这里插入图片描述 ———————————————————— 2. from…import 这一用法也很简洁,但是有个缺点:当引用的库函数很多时,可能会使调用函数重名* 在这里插入图片描述 ———————————————————— (6)循环语句与range()函数:

———————————————————— 第一,range()函数产生循环计数序列,有两种使用方法: 1.range(n): 表示0,1,2,3,4…n-1的这一系列的数字 2.range(m,n):表示m,m+1,m+2…n-1的这一系列数字 ———————————————————— 第二,循环语句: for i in range(5): i 是循环变量,range(5)称为循环的迭代对象,表示将变量i 从0,1,2,3,4 这五个数字中遍历,实现5次循环 作用:循环重复操作,如画出蟒蛇的例子中画蛇有几节身的时候。 ————————————————————

★掌握这些知识后并加以熟练的运用,就可以带着你天马行空的想象力开启你自己的turtle绘图之旅啦!下面来欣赏一下本人初次学会turtle绘图后的杰作,嘿嘿。︿ ︿

————————————————————

(1)送你一朵小红花——圆规作图经常画 import turtle as t t.penup() t.fd(-100)#画笔起飞即海龟飞行,往左边移动100个像素,调整其初始位置 t.pendown() t.penup() t.pensize(10)#调整画笔的粗细 t.pencolor("red") t.pendown() t.circle(150,180)#以150个像素为半径画出一个度数为180的半圆 t.left(90)#调整海龟方向,左转90度 t.circle(150,180) t.left(90) t.circle(150,180) t.left(90) t.circle(150,180)

运行结果:

在这里插入图片描述 ———————————————————— (2)七彩棒棒糖——感受下循环的魅力 import turtle as t#给库函数起小名为t,使得代码简洁 t.setup(800,800,200,300)#建立画布 t.pensize(7)#调整画笔粗细为7个像素与颜色为紫色 t.pencolor("purple") for j in range(3):#循环3次画半圆,每次画完右转45度角 t.circle(150 ,180) t.right(45) t.pencolor("black") for j in range(3): t.circle(150 ,180) t.right(45) t.pencolor("blue") for k in range(2): t.circle(150 ,180) t.right(45) t.pensize(6) t.pencolor("blue") for j in range(3): t.circle(120 ,180) t.right(45) t.pencolor("green") for j in range(3): t.circle(120 ,180) t.right(45) t.pencolor("red") for k in range(2): t.circle(120 ,180) t.right(45) t.pensize(5) t.pencolor("red") for j in range(3): t.circle(100 ,180) t.right(45) t.pencolor("blue") for j in range(3): t.circle(100 ,180) t.right(45) t.pencolor("black") for k in range(2): t.circle(100 ,180) t.right(45) t.pensize(4) t.pencolor("black") for j in range(3): t.circle(80 ,180) t.right(45) t.pencolor("purple") for j in range(3): t.circle(80 ,180) t.right(45) t.pencolor("green") for k in range(2): t.circle(80 ,180) t.right(45) t.pensize(3) t.pencolor("green") for j in range(3): t.circle(60 ,180) t.right(45) t.pencolor("red") for j in range(3): t.circle(60 ,180) t.right(45) t.pencolor("purple") for k in range(2): t.circle(60 ,180) t.right(45) t.pensize(2) t.pencolor("purple") for j in range(3): t.circle(40 ,180) t.right(45) t.pencolor("blue") for j in range(3): t.circle(40 ,180) t.right(45) t.pencolor("red") for k in range(2): t.circle(40 ,180) t.right(45) t.pensize(1) t.pencolor("red") for j in range(3): t.circle(20 ,180) t.right(45) t.pencolor("purple") for j in range(3): t.circle(20 ,180) t.right(45) t.pencolor("black") for k in range(2): t.circle(20 ,180) t.right(45) t.pensize(10) t.pencolor("black")#制作棒棒糖杆 t.goto(500,-500) t.done()

运行结果:

在这里插入图片描述 解释:别看代码一百多行,其实本质上就十几行,总共7次外循环,每次外循环内部又有3次内循环,所以也就21次循环,造就出这么个看了有点花眼但又有规律可循的“七彩花球”。小海龟说:“如果你愿意,我可以一直循环画下去。”哈哈哈!︿ ︿

————————————————————

结尾:★原创不易★ 写博客,一方面把学习的内容与经验分享给大家,一方面记录学习过程供以后回顾。希望大家多多关注我,我们一起学Python,相互促进,共同成长! ——深蓝

在这里插入图片描述


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3