4.Python基本图形绘制
Guido van Rossum 是Python语言创立者,python是通用语言,是脚本语言、开源语言、跨平台语言、多模型语言。
特点和优势是:语法简洁:代码行数仅是C语言的10%,强制可读性,较少的底层语法元素,多种编程方式,支持中文字符;生产高产:13万的第三方库,快速增长的计算生态,避免重复造轮子,开放共享,跨操作系统平台。
turtle绘图体系:1969年诞生,主要用于程序设计入门,Python语言的标准库之一,入门级的图形绘制函数库。
Python计算生态 = 标准库 + 第三方库
标准库:随解释器直接安装到操作系统中的功能模块。
第三方库:需要经过安装才能使用的功能模块- 库Library、包Package、模块Module,统称模块。
4.3.2turtle绘图窗体布局
Turtle的绘图窗体和tultle.setup()函数:
turtle.setup(width,height,startx,starty)设置窗体大小和位置,参数后两个可选,不写默认窗体在屏幕中间。
补充:
turtle.screensize(canvwidth=None, canvheight=None, bg=None)设置画布大小,参数分别为画布的宽(单位像素), 高, 背景颜色。
如:turtle.screensize(800,600, "green")
turtle.screensize() #返回默认大小(400, 300)
#大小似乎没变化,背景可以设置,用setup()设置大小和位置
4.3.3 turtle空间坐标体系
第一种:绝对坐标:使用turtle.goto(x,y)函数进行绘制
第二种:海龟坐标:fd前进,bk后退,circle以海龟左侧某点未圆心进行曲线运行。
4.3.4turtle角度坐标体系
第一种:绝对角度 turtle.seth(绝对角度)
第二种:海龟角度 turtle.left()、turtle.right()
4.3.5 RGB色彩体系
RGB色彩模式:默认采用小数值 可切换为整数值
turtle.colormode(mode)
- 1.0:RGB小数值模式
- 255:RGB整数值模式
常用RGB色彩:
英文名称 |
RGB整数值 |
RGB小数值 |
中文名称 |
white |
255, 255, 255 |
1, 1, 1 |
白色 |
yellow |
255, 255, 0 |
1, 1, 0 |
黄色 |
magenta |
255, 0, 255 |
1, 0, 1 |
洋红 |
cyan |
0, 255, 255 |
0, 1, 1 |
青色 |
blue |
0, 0, 255 |
0, 0, 1 |
蓝色 |
black |
0, 0, 0 |
0, 0, 0 |
黑色 |
seashell |
255, 245, 238 |
1, 0.96, 0.93 |
海贝色 |
gold |
255, 215, 0 |
1, 0.84, 0 |
金色 |
pink |
255, 192, 203 |
1, 0.75, 0.80 |
粉红色 |
brown |
165, 42, 42 |
0.65, 0.16, 0.16 |
棕色 |
purple |
160, 32, 240 |
0.63, 0.13, 0.94 |
紫色 |
tomato |
255, 99, 71 |
1, 0.39, 0.28 |
番茄色 |
补充:画笔颜色超详细:https://blog.csdn.net/guoxinian/article/details/80242353
补充几个函数:
Turtle.fillcolor(colorstring):绘制图形的填充颜色。
Turtle.color(color1,color2):同时设置pencolor=color1,fillcolor=color2
Turtle.filling():返回当前是否在填充状态
Turtle.begin_fill():准备开始填充图形
Turtle.end_fill():填充完成
Turtle.hideturtle():隐藏画笔的turtle形状
Turtle.showturtle():显示画笔的turtle形状
4.4.1库引用与import
方法一:import <库名> <库名>.<函数名>(<参数>)
import turtle : 引入turtle库
turtle.setup(...)
turtle.penup(...)......: 库名.函数名(参数)来使用库
方法二:from <库名>import* <函数名>(<参数>)<函数名>(<参数>)
from turtle import *
setup(...)
penup(...)
......
方法三:使用import和as保留字,给调用的外部库关联一个更短、更适合自己的名字:
import <库名> as <库别名>
<库别名>.<函数名>(<函数参数>)
例如:import turtle as t
t.setup(...)
t.penup(...)
......
4.4.2turtle画笔控制函数 :
penup()(别名pu()/up()), pendown(),pensize(), pencolor()
画笔操作后一直有效,一般成对出现。画笔设置后一直有效,直至下次重新设置。
其中,pencolor(color)的color可以有三种形式:
- 颜色字符串 :turtle.pencolor("purple")
- RGB的小数值:turtle.pencolor(0.63, 0.13, 0.94)
- RGB的元组值:turtle.pencolor((0.63,0.13,0.94))
4.4.3turtle运动控制函数
控制海龟行进:走直线 & 走曲线:
-turtle.forward(d) 别名 turtle.fd(d)
向前行进,海龟走直线;d行进距离,可以为负数
-turtle.bk()向后行进
-turtle.goto(x,y)
- turtle.circle(r, extent=None)
根据半径r绘制extent角度的弧形;r默认圆心在海龟左侧r距离的位置;extent 绘制角度,默认是360度整圆。
4.4.4turtle方向控制函数
控制海龟面对方向: 绝对角度 & 海龟角度
- turtle.setheading(angle) 别名 turtle.seth(angle)
改变行进方向,海龟走角度;angle 行进方向的绝对角度。
- turtle.left(angle) 海龟向左转
- turtle.right(angle) 海龟向右转
angle是在海龟当前行进方向上旋转的角度
补充两个函数:
turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。
dot(r):绘制一个指定直径和颜色的圆点。4.4.5基本循环语句与range()函数
蟒蛇部分代码:
for i in range(4):
turtle.circle(40, 80)
turtle.circle(-40, 80)
形式:for <变量> in range(<次数>):
<被循环执行的语句>
for循环语句按照一定次数循环执行一组语句,变量表示每次循环的计数,0到(次数-1)。
range()函数产生循环计数序列:
- range(N)产生 0 到 N-1的整数序列,共N个
- range(M,N)产生 M 到 N-1的整数序列,共N-M个
示例:range(5) :0, 1, 2, 3, 4
range(2, 5):2, 3, 4