Pythonturtle学习笔记
⼀、简介
Turtle最早来⾃于LOGO语⾔,是专门⽤于⼩孩⼦学习编程的,通过编程模拟⼀只turtle(海龟)在画板上爬⾏绘制图案,后来很多⾼级语⾔都移植了海龟绘图,python从2.6之后也将turtle库加⼊了其内部库中。由于是内部库,使⽤import turtle语句就能引⼊turtle库,绘图主要有以下⼏个步骤:设置画布、设置画笔、控制海龟移动绘制图形、⾊彩填充等。
⼆、基础知识
1)turtle库的引⽤
引⽤turtle库主要有以下三种⽅法:
1.使⽤import保留字直接引⽤
import turtle #每次使⽤函数需加上turtle.
2.使⽤from和import保留字共同完成
from turtle import * #调⽤函数时不⽤加turtle.,但可能会与变量名重复
3.使⽤import和as保留字共同完成
import turtle as t #给turtle库起了个别名t
2)画布
画布即turtle提供的绘图区域,可⽤以下指令设置画布的规模:
1.
java编程一个软件turtle.setup(width,height, startx, starty)
width为画布的宽度;
heigh为画布的⾼度;
(startx,starty)这⼀坐标表⽰矩形窗⼝左上⾓顶点的位置, 如果为空,则窗⼝位于屏幕中⼼。
如:
asp动态网页的执行分为turtle.setup(650,300,100,100)
2.
turtle.screensize(canvwidth canvheight, bg)
canvwidth为画布的宽度;
canvheight为画布的⾼度;
bg为画布背景颜⾊。
如:
turtle.screensize(500,400,"red")
3)画笔
1、画笔的状态
在画布上,默认有⼀个坐标原点为画布中⼼的坐标轴,坐标原点上有⼀只⾯朝x轴正⽅向⼩乌龟。这⾥
我们描述⼩乌龟时使⽤了两个词语:坐标原点(位置),⾯朝x轴正⽅向(⽅向), turtle绘图中,就是使⽤位置⽅向描述⼩乌龟(画笔)的状态。
2、画笔的属性
画笔(画笔的属性,颜⾊、画线的宽度等)
turtle.penside() #设置画笔的宽度
turtle.pencolor() #没有参数传⼊,返回当前画笔颜⾊,传⼊参数设置画笔颜⾊,可以是字符串如"green", "red",也可以是RGB3元组。
turtle.speed(speed) #设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越⼤越快。
4)操纵画笔的函数
绘制图形需要许多让画笔移动和转向甚⾄颜⾊的函数,常⽤到的函数有如下:
画笔操作后⼀直有效,⼀般成对使⽤
turtle.penup() #turtle.pu() 提起画笔移动,不绘制图形
turtle.pendown() #turtle.pd() 画笔落下
画笔设置后⼀直有效,直到下次重新设置
turtle.penside(width) #turtle.width(width) 设置画笔的宽度
turtle.pencolor(color) #设置画笔的颜⾊
#color参数有三种形式
#颜⾊字符串如turtle.pencolor("pink")
#RGB⼩数值如turtle.pencolor(0.63,0.13,0.94)
#RGB整数值如turtle.pencolor(128,0,128)
#RGB数值元组如turtle.pencolor((0.63,0.13,0.94))
画笔改变⾓度的函数,只转不动
turtle.right(degree) #顺时针移动degree°
turtle.left(degree) #逆时针移动degree°
turtle.seth(degree) #只改变画笔⽅向但不移动,degree为绝对度数
画笔运动的函数
turtle.forward(distance) #向当前画笔⽅向移动distance像素长度
turtle.backward(distance) #向当前画笔相反⽅向移动distance像素长度
<(x,y) #将画笔移动到坐标为x,y的位置
turtle.circle(r,extent) #根据半径r绘制extent⾓度的弧形,r默认在画笔左端距离r长度的地⽅,默认绘制完整的圆
三、绘制实例
1)Python蟒蛇绘制
代码如下:
#Python蟒蛇绘制
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)绘制⼀朵玫瑰花代码如下:
#绘制⼀朵玫瑰花
import turtle
# 设置初始位置
turtle.penup()
turtle.left(90)
turtle.fd(200)
turtle.pendown()
turtle.right(90)
# 花蕊
turtle.fillcolor("lightpink")
turtle.begin_fill()
turtle.circle(10, 180)
turtle.circle(25, 110)
turtle.left(50)
turtle.circle(60, 45)
turtle.circle(20, 170)
turtle.right(24)
turtle.fd(30)
turtle.left(10)
turtle.circle(30, 110)
turtle.fd(20)
turtle.left(40)
turtle.circle(90, 70)
turtle.circle(30, 150)
turtle.right(30)
turtle.fd(15)
turtle.circle(80, 90)
turtle.left(15)
turtle.fd(45)
turtle.right(165)
turtle.fd(20)
turtle.left(155)
turtle.circle(150, 80)
turtle.left(50)
turtle.circle(150, 90)
# 花瓣1
turtle.left(150)
turtle.circle(-90, 70)
turtle.left(20)
turtle.circle(75, 105)
turtle.setheading(60)
turtle.circle(80, 98)
turtle.circle(-90, 40)
# 花瓣2
turtle.left(180)
turtle.circle(90, 40)
turtle.circle(-80, 98)
turtle.setheading(-83)
# 叶⼦1
turtle.fd(30)
turtle.left(90)
turtle.fd(25)
turtle.left(45)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(-80, 90)
自学编程能到工作turtle.right(90)
turtle.circle(-80, 90)
turtle.right(135)
matlab中lambda含义turtle.fd(60)
turtle.left(180)
turtle.fd(85)
#叶⼦2
turtle.fd(25)
turtle.left(45)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(-80, 90)
turtle.right(90)
turtle.circle(-80, 90)
turtle.left(180)
turtle.fd(85)
turtle.right(90)
turtle.fd(85)
# 叶⼦3
turtle.right(90)python代码画图案
turtle.fd(15)
turtle.right(45)
turtle.fillcolor("green") turtle.begin_fill()
turtle.circle(80, 90) turtle.left(90)
turtle.circle(80, 90) d_fill()
turtle.left(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(90)
#叶⼦4
turtle.right(45)
turtle.fillcolor("green") turtle.begin_fill()
turtle.circle(80, 90) turtle.left(90)
turtle.circle(80, 90) d_fill()
turtle.left(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(75)
turtle.left(90)
turtle.circle(200, 60) turtle.pendown()
turtle.done()
效果图如下:
access denied for user using password yes3)绘制太极图代码如下:
#绘制太极图
from turtle import *
setup(800,800,100,100)
#绘制左半部分
fillcolor('#FFFFFF')
begin_fill()
circle(100,180)
circle(200,180)
seth(180)
circle(-100,180)
end_fill()
seth(90)
penup()
fd(85)
pendown()
seth(0)
fillcolor('#000000')
begin_fill()
circle(25)
end_fill()
seth(-90)
penup()
fd(85)
pendown()
seth(180)
#绘制右半部分
fillcolor('#000000')
seth(0)
circle(-100,180) end_fill()
seth(-90)
penup()
fd(85)
pendown()
seth(-180) fillcolor('#FFFFFF') begin_fill()
circle(25)
end_fill() hideturtle()
done()
效果图如下:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论