一、蟒蛇绘制
import turtle#导入了turtle包以及所有的内部成员
代码:
import turtle#引入海龟绘图体系
turtle.setup(650,350,200,200)#窗体设置
turtle.penup()#将画笔抬起,无痕迹
turtle.fd(-250)#海龟倒退-250个像素
turtle.pendown()#海龟落下
turtle.pensize(25)#海龟的腰围
turtle.pencolor("red")#海龟的颜色
turtle.seth(-40)#海龟的角度改为绝对值-40方向
for i in range(4):
turtle.circle(40,80)#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#程序不会退出,需要关闭窗体才会退出
import turtle as t
t.setup(650,350,200,200)
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)
二、基础知识
1.turtle库基本介绍
2.标准库
三、代码解释
1.turtle绘图窗体布局
(1)理解窗体:
(2)含义
(3)举例
2.turtle空间坐标体系
2.1 绝对坐标
(1)可以类比数学上的坐标系
(2)turtle.goto(x,y)#让海龟沿着
绝对坐标
进行运动
(3)
代码:
import turtle
turtle.goto(100,100)
turtle.goto(100,-100)
turtle.goto(-100,-100)
turtle.goto(-100,100)
turtle.goto(0,0)
结果是一个动着的图
(4)
代码:
import turtle as t
t.penup()
t.fd(-100)
t.pendown()
t.goto(-100,100)
t.goto(100,100)
t.goto(100,-100)
t.goto(-100,-100)
t.goto(-100,0)
2.2 turtle空间坐标体系
#turtle.fd向海龟的正前方,bk向海龟的反方向,circle表示以某一点为圆心进行曲线运行
3.turtle角度坐标体系
3.1 绝对坐标角
Seth改变的是海龟头朝向
3.2 海龟角度
import turtle as t
t.pencolor("red")
t.pensize(25)
t.left(45)
t.fd(150)
t.right(135)
t.fd(300)
t.left(135)
t.fd(150)
4.RGB色彩体系
5.turtle画笔控制函数(画笔操作函数,一般成对出现;画笔设置后一直有效,直至下次重新设置)
(1)turtle.penup又称turtle.pu
抬起画笔,海龟在飞行,飞行物痕迹
(2)turtle.pendown又称turtle.pd
落下画笔,海龟在爬行,爬行留下痕迹
(3)turtle.pensize(width) 画笔宽度,海⻳的腰围
(4)turtle.pencorlor(color)有三种形式
举例:
6. turtle运动控制函数(控制海龟走直线或走曲线)
(1)走直线
(2)走曲线
EG:一般情况下,circle内部表示的是以海龟左侧100米的圆心,而-100则是以海龟右侧的圆心,角度为顺时针
7.turtle方向控制函数(分为绝对角度和海龟角度)
(1)绝对角度
EG:
(2)海龟角度
四、小结
2:总结代码
函数 描述 : 初始化画布 (这里只提供了turtle的一些基本设置函数,更多函数请自行百度)
turtle.penup() 提起画笔,海⻳⻜行不留下痕迹
turtle.pendown() 放下画笔,海⻳爬行留下痕迹
turtle.pencolor(color) 海⻳的涂装,可以为字符串或RGB三元组
turtle.pensize(width) 画笔宽度,海⻳的腰围
turtle.setup(width,height,startx,starty) 创建画布
turtle.screensize(canvwidth=None,convheight=None,bg=None) 设置画布大小,参数分别为画布的宽(单位像素),高,背景颜色
turtle.colormode(mode) 设置颜色模式,默认小数模式,255大数模式
函数 描述 : 画图操作
turtle.forward(x) 向当前画笔⽅向移动x个像素
turtle.backward(x) 向当前画笔相反⽅向移动x像素⻓度
turtle.left(degree) 当前⽅向左转degree度,只转向不移动
turtle.right(degree) 当前⽅向右转degree度,只转向不移动
turtle.circle(radius,extent=None) 根据半径radius绘制extent⻆度的弧形,默认为360
函数 描述:画笔控制命令
命令 | 说明 |
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形状 |
函数 描述:全局控制
命令 | 说明 |
turtle.clear() |
清空turtle窗口,但是turtle的位置和状态不会改变 |
turtle.reset() |
清空窗口,重置turtle状态为起始状态 |
turtle.undo() |
撤销上一个turtle动作 |
turtle.isvisible() |
返回当前turtle是否可见 |
stamp() |
复制当前图形 |
turtle.write(“年”,font=(“Arial”,18,normal)) | 写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项 |
3:
4:知识点
(1)import的三种用法
import只有三种使用方法,以turtle库为例:
import turtle
from turtle import setup 或 from turtle import *
import turtle as t (其中t是别名,可以更换其他名称)
(2)turtle坐标系的原点默认在窗体正中间
turtle库是一个直观有趣的图形绘制函数库
turtle绘图体系以水平右侧为绝对方位的0度
turtle库最早成功应用于LOGO编程语言
(3)turtle.penup()的别名有turtle.pu(),turtle.up()
turtle.width()和turtle.pensize()都可以用来设置画笔尺寸
turtle.colormode()的作用是设置画笔RGB颜色的表示模式
turtle.pendown()作用是落下画笔,并不绘制任何内容
5:代码解释
#PythonDraw.py # 注释
import turtle #调用海龟绘图函数turtle
turtle.setup(650, 350, 200, 200) #定义绘图窗体
turtle.penup() #画笔抬起
turtle.fd(-250) #向后(X轴负方向)移动250个像素
turtle.pendown() #画笔落下,开始绘画
turtle.pensize(25) #设置画笔粗细,款25像素
turtle.pencolor("purple") #设置画笔颜色为紫色
turtle.seth(-40) #设置画笔朝向角度为-40°
for i in range(4): #使用for in 遍历循环,循环四次结束
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像素,角度为1800°的弧线
turtle.fd(40 * 2/3) #画笔向前画80/3像素的直线
turtle.done() #绘制结束并保持当前绘制结果,若没有则窗口迅速关闭
注意
本文题目来源为Python123平台和中国大学MOCC的《Python语言程序设计》课程, 主讲老师:嵩天、黄天羽、礼欣。如有侵权,立删。