对于一开始学习Python的同学来说,强烈给大家安利Python中的turtle库!
原因有三:直观 有趣 易上手
通过Python的turtle库,你可以很容易的使用循环,判断以及自定义函数等基础的编程知识绘制图案。
在我们之前的文章中有一些教程,你可以在这里看:
1.Python教程|小小turtle绘图教学(一)
2.Python教程|万圣节快乐!30行代码带你画一只蝙蝠!
3.中秋佳节!小乐教你用Python画月饼!
在上一篇的教学中,我们学习了如何绘制多边形和圆,今天我们来做一点儿酷炫的!
旋转的正方形
还记得画正方形的代码吗?
我们来复习一下!
import turtlet = turtle.Pen()for i in range(4): t.forward(100) t.right(90)
import turtle的作用是导入turtle库供我们使用,在turtle库中有很多的命令帮助来画图。
使用t = turtle.Pen()来新建一只画笔,取名字叫t。
使用for循环来重复以下动作四次:
- 前进 100
- 右转 90度
import turtle
t = turtle.Pen()
for i in range(100):
t.forward(100)
t.right(90)
猜猜会发生什么?恭喜你!你收获了一个疯狂的正方形!
如果再改动一下呢?
我们把
t.right(90)改成t.right(90 + 1)
来试一试!
import turtlet = turtle.Pen()for i in range(100): t.forward(100) t.right(90 + 1)
正方形旋转起来了!这是为什么呢?
想象一下:
t.right(90+1)让箭头每次的转向多1度,慢慢的每个正方形都会向右偏移一度,就造成了这样的效果。
你可以试试改变t.right()中的角度,看看会有什么效果?
绘制螺旋?
我们还可以做一些什么改动?
让我们看看如何在循环上能够做一些什么手脚?
首先试一试这样的代码:
import turtlet = turtle.Pen()t.speed(1)t.forward(0)t.right(90)t.forward(5)t.right(90)t.forward(10)t.right(90)t.forward(15)t.right(90)t.forward(20)t.right(90)t.forward(25)t.right(90)t.forward(30)t.right(90)t.forward(35)t.right(90)t.forward(40)t.right(90)t.forward(45)t.right(90)
哇!看起来好长!
那么实际是什么效果呢?
出现了一个正方形的螺旋!
这是为什么呢?我们每次都让画笔t向前移动的距离增大了5,最终会得到一个不断扩大的正方形。
那么问题来了!
这样写代码太麻烦,想要画出来好看的代码也要很多行,那么有什么办法能够帮助我们呢?
试试这样的代码!
import turtle
t = turtle.Pen()
t.speed(0)
for i in range(100):
t.forward(5 * i)
t.right(90)
看到了吗!
很轻松的就画出来了一个正方形螺旋,这多亏了我们的for循环!
for循环可以让内部的代码不断的重复,同时for i in range(100)中的i会从0开始逐渐增大!
比如:
for i in range(100) 中i的值会从0开始,每次循环增加1,最终为99
for i in range(50) 中i的值会从0开始,每次循环增加1,最终为49
现在我们有了两个新的技能:
- 更改旋转的角度
- 更改循环中每次移动的距离
import turtle
t = turtle.Pen()
t.speed(0) #用于改变画笔的速度
t.color('green')
for i in range(100):
t.forward(5 * i)
t.right(90)
也可以使用
t.color(220,120,180)
来设定颜色!
import turtle
t = turtle.Pen()
t.speed(0)
turtle.colormode(255)
t.color(220,120,180)
for i in range(100):
t.forward(5 * i)
t.right(90)
我们来着重介绍一下第二种方法!
相比第一种提供颜色的方法来说,第二种提供的是
光学三基色:红 绿 蓝
光学三基色被广泛的运用在我们的生活中,举个最简单的例子:各种屏幕上就会使用这三种颜色得到想要显示的各种颜色。
光学三基色我们可以按照他们的顺序来起个英文名字:RGB,分别代表了红色,绿色和蓝色。通过不同强度的光照就可以组合成我们想要的颜色啦!
你可以使用t.color(红色强度,绿色强度,蓝色强度)来指定自己想要实现的颜色,不过记住:
每种颜色的数值都只有
0 - 255
个级别,如果你代码中超过了255这个数字,程序会报错哦!这里有一些案例哦,你也可以试试!
import turtlet = turtle.Pen()t.speed(0)turtle.colormode(255) # 切换使用RGB色彩颜色t.color(220,120,180)for i in range(100): t.forward(5 * i) t.right(120) t.forward(2 * i) t.left(30)
(粉色的忍者镖?)
import turtlet = turtle.Pen()t.speed(0)turtle.colormode(255)t.color(90,120,180)for i in range(100): t.forward(i) t.left(30) t.forward(i) t.left(20) t.forward(i) t.right(75)
(蓝色的蜗牛壳?)
你也来一起试着画一些漂亮的图形吧!