Python初学系列——蟒蛇绘制及turtle库的使用

Python初学系列——蟒蛇绘制及turtle库的使用

环境要求
(1)python3
(2)最好有一个ide,我用的是最基本的pycharm

这是我根据mooc的教程写下来的(视频链接在文末),希望能给刚开始学习Python提供一个范例:
这篇博文,我们将绘制一条蟒蛇,并解释turtle的使用。

首先我们设计一下蟒蛇的基本形状,它是一条爬行的蟒蛇而且很有回头感,并且后面会看到它是可以动的:
在这里插入图片描述这就要要用计算机图形的绘制了,这与一般的简单的测试程序是不一样的,因为要涉及到窗口等的出现:
先满足大家的需求,给出全部的代码:

# python.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()
#finish

确保代码无误,执行后,就可以看到屏幕中出现窗口,并且出现了一个动态的,正在逐渐绘制的蟒蛇:
在这里插入图片描述直到全部完成
在这里插入图片描述从代码中我们可以很明显的看到使用了turtle这个库,那么每一行的代表什么意思呢?
turtle意思是海龟,是一个绘图库,是python的标准库之一(注意标准库与第三方库的区别),我们可以叫它海龟库,这是这个程序最关键的地方。
turtle(海龟)是一种真实的存在,可以理解为:
有一只海龟,其实在窗体正中心,在画布上游走;
走过的轨迹形成了绘制的图形
海龟由程序控制,可以变换颜色,改变宽度等

再来看一下一些有趣的示例(使用turtle)
在这里插入图片描述在这里插入图片描述在这里插入图片描述

窗体布局

在电脑显示中,左上角的像素坐标是(0,0),这里的turtle统一如此,可以使用setup()函数来社会中窗体大小以及位置

turtle.setup(width,height,startx,starty)

(后两个坐标是可选的,指窗体左上角相对于屏幕左上角的坐标)
在绘制过程中,setup函数并不是必须的,只有当你需要控制窗体的大小和位置时,采用setup进行限制。

例如:
在这里插入图片描述

空间坐标体系

海龟最开始在画布的正中心,以此构成绝对坐标系,利用空间坐标和函数,可以改变海龟的位置
如最重要的一个函数是
turtle.goto(x,y)
它可以让任意位置的海龟去到达这个位置,例如:
在这里插入图片描述

运动控制函数

turtle.forward(d)别名turtle.fd(d)
d表示行进距离,如果行进距离是负数,表示海龟是倒退着行进的。
turtle.bd(d)是向海龟的反方向运行
turtle.circle(r,angle)这是曲线函数,圆心在海龟的左手侧距离自己距为r的地方,想要绘制完整圆形,不要写第二个参数就好

角度坐标体系

我们可以使用下面函数来改变当前海龟的行进角度
turtle.seth(angle)
这里的angle是将海龟当前的行进方向改变为某一个绝对角度(不是海龟方向,是绝对坐标系中的绝对方向)
为了更好改变方向,还可以分别从左右两个方向改变角度(这个是海龟角度)
turtle.left(angle)
turtle.right(angle)
要注意的是,改变角度的函数只会改变方向,但是不会自动行进,需要配合其他函数,比如turtle.fd(d)来使用。
例如:
在这里插入图片描述现在我们再看上面的程序是不是感觉很熟悉了呢,虽然还是有些不是完全懂,别着急,我们慢慢看下面:

画笔控制函数

这里将海龟想象为画笔pen
画笔成对出现
turtle.penup()别名turtle.pu()抬起画笔,海龟在飞行
turtlependown()别名turtle.pd()落下画笔,海龟在爬行
另外:
turtle.pensize(width)用来设置画笔宽度。
turtle.pencolor(color)设置颜色,里面填rgb值。
这里要注意要把rge压成0-1(除以255即可)
在这里插入图片描述

循环结构与range

python循环语句最常用方式
for i(计数变量) in range(循环次数) 后面缩进的代码将被循环执行
range()产生循环计数序列
range(n)
range(m,n)产生从m到n-1的整数序列
看到这个,基本上上面的蟒蛇代码应该已经能全部看懂了,而且可以自己做出很多改变。这里写一下注释:

# python.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)#4绘制蟒蛇的4个小节
turtle.circle(40,80/2)#绘制少半个弧形
turtle.fd(40)
turtle.circle(16,180)#脖子和头部绘制
turtle.fd(40 * 2/3)
turtle.done()#这行代码使得程序运行后程序不会退出,需要手动关闭窗口
#finish

附加一句:
可以把import turtle调库函数换成from turtle import*,这样后面就可以不用一直加turtle.了,直接写函数就ok,只要注意不要重名就可以,或者也可以import turtle as+别名的方式。

最后,送上视频链接:
https://www.icourse163.org/learn/BIT-268001?tid=1207014257#/learn/announce(这是2019下半年的开课,应该每年都会有开课,讲的真的很棒)

发布了37 篇原创文章 · 获赞 1511 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/weixin_43943977/article/details/101918702
今日推荐