Python Turtle 简单演示 (附雪花绘图)

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()
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值