Python蟒蛇实例思考
题目描述:用python语言绘制一条蟒蛇
题目分析:
根据题目要求绘制的蟒蛇形状为:
当看到这个题目的时候,我们的脑海里会浮现出一些问题,对于编程小白而言会出现这些问题:
问题1:计算机绘图是什么原理?
一段程序如何产生窗体?为何能在窗体上绘制·图形?
问题二:Python蟒蛇绘制从哪里开始呢?
如何绘制一条线?如何绘制一个弧形?如何绘制一个蟒蛇?
编写程序:
#PythonDraw.py 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()
运行截图:
turtle的相关详解
针对该程序,我们认识了解到python的标准库turtle库,Python的计算生态包括标准库和第三方库。
turtle是Python内置的一个标准模块(库),他提供了绘制线、圆和其他形状的函数,使用该模块可以创建图形窗口,在图形窗口中通过简单重复动作直观的绘制界面和图形。
turtle的绘图窗体:
1.turtle.setup函数用来设置启动窗体的位置和大小。
turtle.setup(width,height,startx(窗口在计算机屏幕上的横坐标),starty(窗口在计算机屏幕上的纵坐标))。
setup函数也不是必须的,只有当你需要控制窗体的大小和在屏幕中显示位置的时候,才需要用setup()函数
turtle的空间坐标体系:
1.绝对坐标:最开始在画布的中心,为(0,0),向左为x轴,向上为y轴。
2.海龟坐标:海龟的头所在的行进方向为正方向,反方向即为后退方向,左侧为左侧方向,右侧为右侧方向。
turtle.goto(x,y)指的是让在任何位置的海龟去到达某一个坐标位置
turtle.fd指的是向海龟的正前方向运行
turtle.bk指的是向海龟的后退方向运行
turtle.circle指的是以海龟当前位置左侧的某一个点为圆心进行曲线运行。
turtle.goto语句(绝对坐标基础上)的使用的示例如下:
import turtle turtle.goto(100,100) turtle.goto(100,-100) turtle.goto(-100,-100) turtle.goto(-100,100) turtle.goto(0,0) turtle.done()
运行结果示例图:
turtle角度坐标体系:
1.绝对角度:turtle.seth改变海龟行进方向(只改变方向但不行进)
turtle.seth(绝对度数)
2.海龟角度:海龟前进方向的左侧为turtle.left(度数),右侧为turtle.right(度数)。
示例如下:
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.colormode(mode) mode=1.0时,RGB小数值
mode=255时,RGB整数值模式
库引用
扩充python程序功能的方式
-
使用import保留字完成,采用<a>.<b>()编码风格
import <库名>
<库名>.<函数名>(<函数参数>)
例如:import turtle
turtle.setup(50,50)
2.采用import和from保留字共同完成
from <库名> import<函数名>
例如:from turtle import *
seth(45)
putdown()
3.使用import和as保留字共同完成
import <库名> as<库别名>
例如:import turtle as t
t.left(45)
t.putdown(50)
turtle画笔控制函数
penup:提起画笔
pendown:落下画笔
pensize:设置画笔宽度, width( ) turtle.pensize(25)=turtle.width(25)
pencolor:修改画笔颜色,pencolor(color)的color可以有三种形式:
颜色字符串:’purple’
RGB的小数值
RGB的元组值((0.12,0.12,0.12))
turtle运动控制函数
1.turtle.fd 向前行走,d行进距离,d值为负数时为倒退。
2.turtle.circle(r,extent:None)
根据半径r绘制extent角度的弧形
r默认圆心在海龟左侧r距离的位置
turtle方向控制函数
1.turtle.seth(30)在绝对角度下
2.turtle.left(30) turtle.right(30) 在海龟角度下。
for 变量 in range(<参数>) 其中参数即为循环的次数。
range(N)
产生从0到N-1的整数序列,共N个数
range(M,N)
产生从M开始,到N-1的整数序列,共N-M个。
解释代码程序:
#PythonDraw.py import turtle#调用turtle库函数 turtle.setup(650, 350, 200, 200)#建立绘图窗体,分别为宽650个像素,高350个像素,离左上角坐标为(200,200) turtle.penup()#画笔抬起 turtle.fd(-250)#fd为向前进-250为负值,向后退250个像素. turtle.pendown()#画笔落下,开始描画 turtle.pensize(25)#画笔宽度为25个像素 turtle.pencolor("purple")#所画的颜色为purple turtle.seth(-40)#在绝对角度下转动角度为-40度 for i in range(4):#进行循环,循环四次 turtle.circle(40, 80)#在离海龟左侧距离为40的位置弧度为80度。 turtle.circle(-40, 80)#在离海龟左侧距离为-40的位置弧度为80度。 turtle.circle(40, 80/2)#在离海龟左侧距离为40的位置弧度为40度。 turtle.fd(40)#向前进40 turtle.circle(16, 180)#在离海龟左侧距离为16的位置,弧度为180. turtle.fd(40 * 2/3)#继续前进40*2/3 turtle.done()
#即为对于代码的注释。
turtle.circle(m,n)
确定角度后,m+n+左顺(从点出发,顺时针旋转)
m-n+ 右顺
m+n-左逆
m-n-右逆