第二周
海龟库,绘制图形
#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()
2-3turtle库的使用
Python计算生态(之后会讲到)=标准库+第三方库
标准库:随解释器直接安装到操作系统中的功能模块
第三方库:需要安装才能使用的功能模块库library,包package,模块module统称模块
Turtle的绘图窗体:
比如绘制100长的直线,指的是一百像素。
以下介绍turtle的函数库:
首先是turtle的
Setup(width,height,startx,starty)函数:设置启动窗体的位置和大小
Startx:表示窗体的左边框和电脑左屏幕的左边框之间的距离
Starty:表示窗体的上边框和电脑上屏幕的边框之间的距离
这两个参数可选
Setup():不是必须的
Turtle空间坐标体系:绝对坐标和海龟坐标
Turtle.goto(x,y)
绝对坐标:
海龟坐标:
bk表示往反方向运行:
fd表示往正方向运行:
Circle:表示以海龟当前位置左侧的某一个点为圆心去进行曲线运行
Turtle角度坐标体系:
Seth()改变海龟行进方向
Seth()只改变方向,但不前进
Angle这个参量为绝对度数
Left()和right()分别让海龟向左或者向右去进行旋转,里面的参数是旋转的角度
比如:举一个例子:
import turtle
turtle.left(45)
turtle.fd(150)
turtle.right(135)
turtle.fd(300)
turtle.left(135)
turtle.fd(150)
绘制的图形如下:
Fd():里面的参数是指像素,fd表示像前面前进
RGB色彩体系:对绘制的图形加上颜。
三种颜色构成了万物色:
RGB指的是红绿蓝三种颜色的通道.并且由三种颜色通道进行色彩组合
覆盖了视力所能感知的所有颜色
RGB每种色取值范围0-255整数或者0-1小数
RGB色彩模式:默认采用小数值 可切换为整数值
Turtle.colormode(mode)
-1.0:RGB小数值模式
-255:RGB整数值模式
2.3总结:
Turtle库的海龟绘图法
-turtle-setup()调整绘图窗体再电脑中的布局
-画布上以中心为远点的空间坐标系:绝对坐标和海龟坐标
画布上以空间x轴为0的角度坐标系:绝对角度和海龟角度
海龟坐标和海龟角度都是以当前位置和朝向的位置而决定的
RGB色彩体系,整数值和小数值,色彩模式切换
2-4turtle程序语法分析:
1.库引用和import保留字,以及turtle更多用法
2.Turtle画笔控制函数
3.Turtle运动控制函数
4.Turtle方向控制函数
5.基本循环语句和range函数
6.-python蟒蛇绘制“代码分析”
一.库引用和import保留字
库引用:扩充python程序功能的方式
使用import保留字完成,采用.( )编码风格
Import<库名>
<库名>.<函数名>(<函数参数>)
关于import的更多用法:
(1)使用from和import保留字共同完成
例如:
from<库名>import<函数名>
from<库名>import*
之后调用函数的时候,不要用库名.去进行调用了。
然后直接 ->函数名(参数)就可以直接调用了
改进后如下:
from turtle import *
setup(650,350,0,)
penup()
fd(-250)
pendown()
pensize(25)
pencolor("yellow")
seth(-40)
for i in range(4):
circle(40,80)
circle(-40, 80)
circle(40,80/2)
fd(40)
circle(16,180)
fd(40*2/3)
done()
两种方法各有优缺点:
第一种方法不会出现函数重名的方式。
库名+函数名->它是新程序的函数名
第二种方法可能会带来函数的名称和程序自定义的名臣可能会冲突
(2)对库名去进行取别名
比如对turtle库进行取别名:可以写成这样子
Import turtle as t
那么之前的代码可以改成这样子:
import turtle as t
#导入了海龟的库
t.setup(650,350,0,)
t.penup()
t.fd(-250)
t.pendown()
t.pensize(25)
t.pencolor("yellow")
t.seth(-40)
for i in range(4):
t.circle(40,80)
t.circle(-40, 80)
t.circle(40,80/2)
t.fd(40)
t.circle(16,180)
t.fd(40*2/3)
t.done()
二.画笔控制函数
四个函数分别是:
Penup( )别名turtle.pu()
Pensize() 别名turtle.width(width)
Pendown() 别名turtle.pd()
Pencolor(color) :涂上颜色
Color的参数有三种颜色:
(1)颜色字符串:注意是小写
(2)RGB的小数值turtle.pencolor(0.63,0.13,0.94)
(3)RGB元组值(形成一种独立元素):turtle.pencolor((0.63,0.13,0.94))
三.运动控制函数
控制海龟行进:走直线or走曲线
Turtle.forward(d) 别名 turtle.fd(d): 向前前进。负数表示向后退。单位是像素
Turtle.circle(r,extent=None)
表示的是:根据半径r绘制extent角度的弧形
r :默认圆心再海龟左手侧r距离的位置
但是第二个参数没有给的情况下:默认绘制的是圆形
三.方向控制函数
在上述实例中:turtle.seth(-40)
控制海归面对方向:绝对角度和海龟角度
可以改变行进方向:
Turtle.setheading(angle) 别名:turtle.seth(angle)
Turtle.left(angle) 海龟向左转
Turtle.right(angle) 海龟向右转
上面仅仅改变的是方向,如果需要运动,那么就要行走
看看代码: turtle.seth(-40):将海龟的方向坐标系改变为绝对值-40°方向
四.循环语句和range函数
参数表示的是循环的次数:
Range函数–产生循环计序列
主要是两种用法
1.-range(N):产生0到N-1的整数序列,共N个
2.-range(M,N):产生M到N-1的整数序列,工N-M个
最后对代码进行一个总结:
#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()
分析:
引入海龟->设置窗体->将海龟的画笔抬起->设置倒退250像素->海龟落笔
//至此状态是:海龟现在的位置是原来位置的左边的某一位置上。
->设置腰围设置海龟为25个像素->设置画笔的颜色为紫色->将海龟方向改为绝对值的-40度方向->准备启动绘制python蟒蛇
//以上做出了准备工作
->接下来四个循环,将海龟走曲线,40像素为半径绘制80的弧度。再反向->在以40°的方式绘制半径为40的小半个图形->往前走->做出半圆->再往前走->之后就是保存
关于turtle.done():可以避免程序自动退出。