Python+Turtle实现绘制可爱的小仓鼠

1.介绍

本文将介绍使用Python的Turtle模块,通过编写代码进行绘制小仓鼠,我们将在本文中学习如何使用Turtle模块,掌握Turtle绘图的基本知识,然后我们会一步步地讨论如何使用Turtle绘制小仓鼠图像。在本文中,我们将使用Python 3.0及以上的版本。在开始之前,确保你已经安装好了Python。

2. Python Turtle模块介绍

2.1 Turtle是什么?

Turtle是Python内置的一个绘图模块,它允许我们使用图形方式绘制形状、图案、和图像。我们可以在屏幕上画出我们喜欢的任何东西。Turtle模拟了海龟移动,让我们可以在屏幕上绘制各种形状。

2.2 如何使用Turtle模块

要使用Turtle模块,我们需要在Python代码中引用它。

import turtle

import语句可以将其他的代码文件中的函数、变量、类等导入到当前的代码文件中,以便我们在当前的代码文件中使用。

2.3 如何绘制形状和图案?

使用Turtle模块,我们可以绘制各种简单到复杂的形状和图案。我们可以使用指令将海龟向前、向后移动,并切换海龟的方向。这些指令让我们在屏幕上画出各种形状。

2.4 如何控制Turtle绘图的速度?

有些时候,我们需要在屏幕上绘制出很多图形,而我们可能不想看到绘制的过程,希望可以一次性全部显示出来。这时,我们可以调整Turtle绘图的速度,让它在绘制时慢慢地显示出来。

我们可以使用如下语句来调整绘图速度:

turtle.speed(1)

数字1-10表示不同的绘图速度,其中1最慢,10最快。 我们也可以使用turtle.delay()方法来设置绘图延迟时间。

3. 动手绘制小仓鼠

现在,我们已经了解了如何使用Turtle模块,下面,我将使用Turtle模块来绘制一个可爱的小仓鼠。

3.1 绘制小仓鼠的身体

我们可以使用turtle.circle()函数来画一个圆形。

间距为0px:

图1-绘制小仓鼠的身体

import turtle

# 创建画布

canvas = turtle.Screen()

canvas.bgcolor("white")

# 创建游标

pen = turtle.Turtle()

pen.color("#575047")

# 画身体

pen.begin_fill()

pen.speed(20)

pen.circle(50)

pen.end_fill()

turtle.done()

使用上面的代码,我们可以绘制出一个小仓鼠的身体。由于小仓鼠的身体是圆形,我们可以使用turtle.circle()方法来绘制它。其中,50是圆的半径。

要点总结:

使用turtle.circle()绘制圆形

在绘图前使用pen.begin_fill()方法,表示绘制填充图形

在绘图结束前使用pen.end_fill()方法,表示结束填充

使用pen.speed()方法可以调整绘图速度

3.2 绘制小仓鼠的耳朵

接着,我们需要绘制小仓鼠的耳朵。耳朵是细长的三角形,我们可以使用turtle.goto()方法移动游标的位置,使用turtle.setheading()方法来控制游标的方向。

间距为0px:

图2-绘制小仓鼠的耳朵

import turtle

# 创建一个屏幕并设置背景色

canvas = turtle.Screen()

canvas.bgcolor("#f6cf9f")

# 创建游标

pen = turtle.Turtle()

pen.color("#575047")

# 画身体

pen.begin_fill()

pen.speed(20)

pen.circle(50)

pen.end_fill()

# 画耳朵

pen.color("#333333")

pen.penup()

pen.goto(-10,80)

pen.pendown()

pen.begin_fill()

pen.setheading(50)

pen.forward(40)

pen.setheading(-60)

pen.forward(70)

pen.setheading(-140)

pen.forward(40)

pen.end_fill()

pen.penup()

pen.goto(10,80)

pen.pendown()

pen.begin_fill()

pen.setheading(130)

pen.forward(40)

pen.setheading(60)

pen.forward(70)

pen.setheading(-40)

pen.forward(40)

pen.end_fill()

turtle.done()

我们可以使用turtle.penup()方法抬起笔头,然后使用turtle.pendown()方法放下笔头;使用turtle.goto()方法移动笔头。

要点总结:

使用turtle.goto()方法移动游标的位置

使用turtle.setheading()方法来控制游标的方向

使用turtle.penup()方法和turtle.pendown()方法来抬起和放下笔头

使用turtle.begin_fill()和turtle.end_fill()方法来绘制填充图形

3.3 绘制小仓鼠的嘴巴

小仓鼠的嘴部是一个三角形,我们可以使用turtle.goto()方法移动游标的位置,使用turtle.setheading()方法来控制游标的方向。

间距为0px:

图3-绘制小仓鼠的嘴巴

import turtle

# 创建画布

canvas = turtle.Screen()

canvas.bgcolor("#f6cf9f")

# 绘制身体

pen = turtle.Turtle()

pen.color("#575047")

pen.begin_fill()

pen.speed(20)

pen.circle(50)

pen.end_fill()

# 绘制耳朵

pen.color("#333333")

pen.penup()

pen.goto(-10,80)

pen.pendown()

pen.begin_fill()

pen.setheading(50)

pen.forward(40)

pen.setheading(-60)

pen.forward(70)

pen.setheading(-140)

pen.forward(40)

pen.end_fill()

pen.penup()

pen.goto(10,80)

pen.pendown()

pen.begin_fill()

pen.setheading(130)

pen.forward(40)

pen.setheading(60)

pen.forward(70)

pen.setheading(-40)

pen.forward(40)

pen.end_fill()

# 绘制嘴巴

pen.color("#873600")

pen.penup()

pen.goto(0,40)

pen.pendown()

pen.begin_fill()

pen.left(35)

pen.forward(60)

pen.setheading(0)

pen.forward(30)

pen.setheading(-35)

pen.forward(60)

pen.end_fill()

turtle.done()

我们可以使用如下语句画一个三角形:

# 画三角形

pen.color("#873600")

pen.penup()

pen.goto(0,40)

pen.pendown()

pen.begin_fill()

pen.left(35)

pen.forward(60)

pen.setheading(0)

pen.forward(30)

pen.setheading(-35)

pen.forward(60)

pen.end_fill()

包含以下步骤:

1.黄色箭头是海龟的初始方向;

2.黄色箭头旋转到35度;

3.画60像素长度的线段;

4.将海龟方向转向0度;

5.画30像素长度的线段;

6.将海龟方向设置为-35度;

7.画60个像素长度的线段,最后填充颜色。

要点总结:

使用turtle.left()和turtle.right()方法,控制海龟旋转角度

使用turtle.forward()方法,控制海龟前进距离

3.4 绘制小仓鼠的眼睛

使用turtle.circle()函数和turtle.fillcolor()方法,我们可以很容易地绘制出小仓鼠的眼睛。

间距为0px:

图4-绘制小仓鼠的眼睛

import turtle

# 创建画布

canvas = turtle.Screen()

canvas.bgcolor("#f6cf9f")

# 绘制身体

pen = turtle.Turtle()

pen.color("#575047")

pen.begin_fill()

pen.speed(20)

pen.circle(50)

pen.end_fill()

# 绘制耳朵

pen.color("#333333")

pen.penup()

pen.goto(-10,80)

pen.pendown()

pen.begin_fill()

pen.setheading(50)

pen.forward(40)

pen.setheading(-60)

pen.forward(70)

pen.setheading(-140)

pen.forward(40)

pen.end_fill()

pen.penup()

pen.goto(10,80)

pen.pendown()

pen.begin_fill()

pen.setheading(130)

pen.forward(40)

pen.setheading(60)

pen.forward(70)

pen.setheading(-40)

pen.forward(40)

pen.end_fill()

# 绘制嘴巴

pen.color("#873600")

pen.penup()

pen.goto(0,40)

pen.pendown()

pen.begin_fill()

pen.left(35)

pen.forward(60)

pen.setheading(0)

pen.forward(30)

pen.setheading(-35)

pen.forward(60)

pen.end_fill()

# 绘制眼睛

pen.color("#ffffff")

pen.penup()

pen.goto(-20, 100)

pen.pendown()

pen.begin_fill()

pen.circle(10)

pen.end_fill()

pen.penup()

pen.goto(20, 100)

pen.pendown()

pen.begin_fill()

pen.circle(10)

pen.end_fill()

turtle.done()

要点总结:

使用turtle.circle()绘制圆形

使用turtle.fillcolor()方法填充颜色

3.5 绘制小仓鼠的鼻子

小仓鼠的鼻子是一个小圆圈,我们可以使用turtle.circle()函数画出来。

间距为0px:

图5-绘制小仓鼠的鼻子

import turtle

# 创建画布

canvas = turtle.Screen()

canvas.bgcolor("#f6cf9f")

# 绘制身体

pen = turtle.Turtle()

pen.color("#575047")

pen.begin_fill()

pen.speed(20)

pen.circle(50)

pen.end_fill()

# 绘制耳朵

pen.color("#333333")

pen.penup()

pen.goto(-10,80)

pen.pendown()

pen.begin_fill()

pen.setheading(50)

pen.forward(40)

pen.setheading(-60)

pen.forward(70)

pen.setheading(-140)

pen.forward(40)

pen.end_fill()

pen.penup()

pen.goto(10,80)

pen.pendown()

pen.begin_fill()

pen.setheading(130)

pen.forward(40)

pen.setheading(60)

pen.forward(70)

pen.setheading(-40)

pen.forward(40)

pen.end_fill()

# 绘制嘴巴

pen.color("#873600")

pen.penup()

pen.goto(0,40)

pen.pendown()

pen.begin_fill()

pen.left(35)

pen.forward(60)

pen.setheading(0)

pen.forward(30)

pen.setheading(-35)

pen.forward(60)

pen.end_fill()

# 绘制眼睛

pen.color("#ffffff")

pen.penup()

pen.goto(-20, 100)

pen.pendown()

pen.begin_fill()

pen.circle(10)

pen.end_fill()

pen.penup()

pen.goto(20, 100)

pen.pendown()

pen.begin_fill()

pen.circle(10)

pen.end_fill()

# 绘制鼻子

pen.color("#000000")

pen.penup()

pen.goto(0,70)

pen.pendown()

pen.begin_fill()

pen.circle(5)

pen.end_fill()

turtle.done()

要点总结:

使用turtle.circle()方法绘制圆形

3.6 最终绘制效果

最后,我们可以将所有部件组合在一起,绘制出我们可爱的小仓鼠。

import turtle

# 创建画布

canvas = turtle.Screen()

canvas.bgcolor("#f6cf9f")

# 绘制身体

pen = turtle.Turtle()

pen.color("#575047")

pen.begin_fill()

pen.speed(20)

pen.circle(50)

pen.end_fill()

# 绘制耳朵

pen.color("#333333")

pen.penup()

pen.goto(-10,80)

pen.pendown()

pen.begin_fill()

pen.setheading(50)

pen.forward(40)

pen.setheading(-60)

pen.forward(70)

pen.setheading(-140)

pen.forward(40)

pen.end_fill()

pen.penup()

pen.goto(10,80)

pen.pendown