Python Turtle 简单演示 /附雪花绘图/
写在前面
Python提供的画图功能中,Turtle是非常直白易懂易操作的方法,本文简单介绍一些常用的Turtle功能,并在最后实现一个雪花图案的绘制。
开发环境
Python 3.9
PyCharm
Turtle常用功能
不要忘记import turtle才能正常使用这些功能哦
1.移动
.forward(n)向前移动n距离
.back(n)向后移动n距离
2.转向
.left(a)向左旋转a角度
.right(a)向右旋转a角度
初始默认水平向右方向
3.抬起/放下
.penup()抬起,此状态下移动不会留下线条
.pendown()放下,此状态下移动会留下线条
初始默认down状态
4.位置设置
.goto(x,y)移动到坐标轴(x,y)处
.setx(x)初始在坐标轴(x,0)处
.sety(y)初始在坐标轴(y,0)处
5.颜色设置
.color(“str”)设置线条颜色
.begin_fill()end_fill()放在绘制闭合图形前后,填充图形,默认与线条颜色相同
6.速度设置
.speed(s)设置绘图速度为s,默认值5
7.其他设置
.hideturtle()隐藏乌龟标记
.mainloop()保留绘制完的界面
Turtle还有许多实用的方法,更多的可以自己去随用随学习
函数方法
假设我们来画一个五角星,代码如下:
import turtle
turtle.hideturtle()
turtle.forward(200)
turtle.right(144)
turtle.forward(200)
turtle.right(144)
turtle.forward(200)
turtle.right(144)
turtle.forward(200)
turtle.right(144)
turtle.forward(200)
turtle.mainloop()
不难发现,在绘制这些正几何图形的时候,经常会有完全重复的步骤;
我们完全可以利用规则,结合循环和函数的方法简化代码:
star()函数
def star():
for i in range(5):
turtle.forward(200)
turtle.right(144)
更进一步,我们还可以实现绘制任意边数的正几何图形:
def draw(number, distance):
angle = 180 - (number - 2) * 180 / number
for i in range(number):
turtle.forward(distance)
turtle.left(angle)
雪花绘图
import turtle
def koch(t, n):
"""Draws a koch curve with length n."""
if n < 10:
t.fd(n)
return
m = n/3
koch(t, m)
t.lt(60)
koch(t, m)
t.rt(120)
koch(t, m)
t.lt(60)
koch(t, m)
def snowflake(t, n):
"""Draws a snowflake (a triangle with a Koch curve for each side)."""
for i in range(3):
koch(t, n)
t.rt(120)
bob = turtle.Turtle()
bob.pu()
bob.goto(-150, 90)
bob.pd()
snowflake(bob, 300)
turtle.mainloop()