【初识Python】python入门(三)——海龟绘图库

turtle海龟绘图库

相关资料来自百度百科,以及MOOC教程。
turtle(海龟)是Python重要的标准库之一,
它能够进行基本的图形绘制。
turtle图形绘制的概念诞生于1969年,
成功应用于LOGO编程语言。
turtle库绘制图形有一个基本框架:
一个画笔在坐标系中移动,其运动轨迹形成了绘制图形。
刚开始绘制时,画笔位于画布正中央,此处坐标为(0,0),前进方向为水平向右。
另外,turtle库使用
RGB色彩模式。

turtle的绘图窗体

利用setup()来设置。

# setup各项参数
turtle.setup(width, height, startx, starty)
  • setup()设置窗体大小及位置
  • 4个参数中后两个可选
  • setup()不是必须的

空间坐标体系

【初识Python】python入门(三)——海龟绘图库_第1张图片>>>>>>>>>画笔位于正中间(0,0)的位置。<<<<<<<<<<<<<

import 库引用

首先学了个实例,绘制小蛇。其中第一行。便是import的使用。
什么是import呢?

【初识Python】python入门(三)——海龟绘图库_第2张图片而import的用法也是很多。
教学实例是小蛇的绘制。

【初识Python】python入门(三)——海龟绘图库_第3张图片
这里先把画小蛇的三种使用import的方法写出来:

第一种

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()

第二种

from turtle import * 
setup(650, 350, 200, 200) 
penup() fd(-250) 
pendown() 
pensize(25) 
pencolor("purple") 
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()

第三种

import turtle as t 
t.setup(650, 350, 200, 200) 
t.penup() t.fd(-250) 
t.pendown() 
t.pensize(25) 
t.pencolor("purple") 
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() 

经过观察发现第二种好像更简便,
实则第二种限制会比较多,
只能用单个库里面的函数。
不过也可以作为一种借鉴。
所以使用第三种代码更好一点。
那么每行的作用是什么呢。

turtle库的函数

画笔控制函数

画笔抬起和落下

画笔操作后一直有效,一般成对出现
turtle.penup() 也可以写 turtle.pu() 抬起画笔
turtle.pendown() 也可以写 turtle.pd() 落下画笔

画笔的移动和变向

画笔的移动

①直线移动
turtle.forward(d) 也可以写 turtle.fd(d)
向前移动,画笔走直线
d: 行进距离,可以为负数

②曲线移动
turtle.circle(r, extent=None)
根据半径r绘制extent角度的弧形
r: 默认圆心在海龟左侧r距离的位置 extent:
绘制角度,默认是360度整圆

画笔的方向

①绝对角度 turtle.setheading(angle)
也可以写 turtle.seth(angle)
改变移动方向,画笔旋转一定角度
angle: 行进方向的绝对角度(x轴y轴水平坐标体系)

②相对角度
turtle.left(angle) 画笔向左转
turtle.right(angle) 画笔向右转
angle: 在海龟当前行进方向上旋转的角度

画笔颜色和大小

画笔设置后一直有效,直至下次重新设置
画笔宽度:turtle.pensize(width) 也可以写 turtle.width(width)
画笔颜色:turtle.pencolor(color) color为颜色字符串或r,g,b值
》》》》这里画笔的颜色color可以有三种形式。《《《《

【初识Python】python入门(三)——海龟绘图库_第4张图片

循环语句

代码中另外一个要点就是循环语句的实现。

【初识Python】python入门(三)——海龟绘图库_第5张图片

range()函数
产生循环计数序列
range(N)
产生 0 到 N-1的整数序列,共N个
range(M,N)
产生 M 到 N-1的整数序列,共N-M个

代码尝试

最后,我自己尝试写了个痛恨 喜爱的钉钉绘制
orz有点草陋。先放上预览图

【初识Python】python入门(三)——海龟绘图库_第6张图片

代码如下:

 from turtle import*
def Goto(x,y):
    penup()
    goto(x,y)
    pendown()
ht()
speed(0)
colormode(255)
bgcolor(0,120,215)
screensize(250,250)
setup(250,250)

Goto(0,-70)
pencolor(46,160,240)
fillcolor(46,160,240)
begin_fill()
circle(70,360)
end_fill()

Goto(10,-53)
fillcolor(255,255,255)
pencolor(255,255,255)
begin_fill()
seth(50)
fd(36)
seth(180)
fd(11)
seth(60)
fd(39)
seth(154)
fd(87)
seth(270)
fd(21)
seth(-24)
fd(38)
seth(172)
fd(30)
seth(-49)
fd(18)
seth(0)
fd(25)
seth(192)
fd(21)
seth(-39)
fd(20)
seth(10)
fd(14)
seth(-110)
fd(18)
seth(0)
fd(10)
seth(251)
fd(22)
end_fill()
done()

你可能感兴趣的:(python入门)