Python Turtle是Python内置的一个绘图模块,可以使Python编程更加生动有趣,适合初学者学习Python编程以及对图形学有兴趣的人入门。Python Turtle支持绘制图形、动画、游戏等多种应用场景,类似Logo语言。
开发环境配置
Python3 中turtle是默认安装的,因此你可以开始学习使用它。打开 Python 交互窗口,输入以下代码,看一下 Python 的 Turtle 是否正常工作:
```
import turtle
t = turtle.Turtle()
t.forward(100)
t.left(90)
t.forward(100)
```
如果这段代码能够正常显示一个前进100像素,向左转90度,前进100像素的图形,就说明 Python 的 Turtle 正常工作了。如果没有正常工作,请到 Python 官网的文档页面查看如何安装和测试turtle模块。
基础绘图
下面实现“绘制一个五角星”的代码:
```
import turtle
t = turtle.Pen()
for i in range(5):
t.forward(100)
t.right(144)
```
代码解释:
1.导入turtle模块
2.创建一个画笔,t = turtle.Pen()
3.创建一个循环,for i in range(5):
4.向前走100 steps,t.forward(100)
5.向右旋转 144 度,t.right(144)
然后,你会发现你画出了一个诱人的五角星。t.right(144)语句的功能是在向前移动之前旋转画笔,使每个角顺时针旋转144度,这样就组成了五角星形式。
五环图的绘制
下面实现有用实现五环图的代码:
```
import turtle
# 每个圆的颜色
colors = ['blue', 'black', 'red', 'yellow', 'green']
t = turtle.Pen()
# 设置画笔宽度
t.width(10)
# 循环绘制圆环
for i in range(5):
t.color(colors[i])
t.penup()
t.goto(i*120,0)
t.pendown()
t.circle(50)
# 将画笔移到下一个位置
t.penup()
t.goto(0,-70)
t.pendown()
t.color('white')
t.write("吉尼斯五环,Python实现!", align="center")
```
代码解释:
1.导入turtle模块
2.设置每个圆的颜色,colors = ['blue', 'black', 'red', 'yellow', 'green']
3.创建一个画笔,t = turtle.Pen()
4.设置画笔宽度,t.width(10)
5.循环绘制五个圆环
6.设置画笔颜色,t.color(colors[i])
7.提起画笔,t.penup()
8.移动到相应位置,t.goto(i*120,0)
9.放下画笔,t.pendown()
10.绘制圆环,t.circle(50)
11.提起画笔,t.penup()
12.移动到文字位置,t.goto(0,-70)
13.放下画笔,t.pendown()
14.设置文字颜色为白色,t.color('white')
15.“Python实现!” 字符串并对齐居中t.write("吉尼斯五环,Python实现!", align="center")
这个例子基本上涵盖了 turtle 模块的所有基本绘图内容,包括画线、设置坐标系和颜色,移动画笔,绘制圆、方、文本等等。理解它们的用法将帮助你更深入地了解 turtle 模块。
其他实例
接下来几个实例是更具有创造性和趣味性的,其中包括动画、游戏、螺旋图案和幻彩涂鸦。你可以在实践中学习 Python 语言和几何图形,同时拓宽你对Python程序设计的认识。
动画
动画是许多游戏和电影的核心。Python有一个内置模块,可以轻松地创造各种类型的动画和交互式影片,它称为turtle模块。
动画示例:
```
import turtle
t = turtle.Pen()
#循环绘制圆弧
for i in range(50):
t.forward(i * 10)
t.right(144)
turtle.mainloop()
```
代码解释:
1.导入turtle模块
2.创建一个画笔,t = turtle.Pen()
3.循环绘制圆弧
4.前进距离 i * 10,t.forward(i * 10)
5.向右旋转 144 度,t.right(144)
6.turtle.mainloop()语句的作用是让窗口一直保持开启,直到你关闭它。
python snake游戏
下面实现一个简单的 Snake 游戏例子:
```
import turtle
import random
#定义方向常量
UP = 0
DOWN = 1
LEFT = 2
RIGHT = 3
# 速度全局变量
delay = 0.1
# 设置窗口
win = turtle.Screen()
win.title("Python Snake Game")
win.bgcolor('green')
win.setup(width=600, height=600)
# 创建蛇头
head = turtle.Turtle()
head.speed(0)
head.shape('square')
head.color('black')
head.penup()
head.goto(0, 0)
head.direction = UP
# 创建果实
fruit = turtle.Turtle()
fruit.speed(0)
fruit.shape('circle')
fruit.color('red')
fruit.penup()
fruit.goto(random.randint(-290, 290), random.randint(-290, 290))
# 蛇身体组成的列表
segments = []
# 移动
def move():
if head.direction == UP:
y = head.ycor()
head.sety(y + 20)
if head.direction == DOWN:
y = head.ycor()
head.sety(y - 20)
if head.direction == LEFT:
x = head.xcor()
head.setx(x - 20)
if head.direction == RIGHT:
x = head.xcor()
head.setx(x + 20)
# 控制方向
def go_up():
if head.direction != DOWN:
head.direction = UP
def go_down():
if head.direction != UP:
head.direction = DOWN
def go_left():
if head.direction != RIGHT:
head.direction = LEFT
def go_right():
if head.direction != LEFT:
head.direction = RIGHT
# 监听键盘事件
win.listen()
win.onkeypress(go_up, "Up")
win.onkeypress(go_down, "Down")
win.onkeypress(go_left, "Left")
win.onkeypress(go_right, "Right")
# 主循环
while True:
win.update()
# 碰到边境
if head.xcor() > 290 or head.xcor() < -290 or head.ycor() > 290 or head.ycor() < -290:
turtle.bgcolor('red')
turtle.color('white')
turtle.write("游戏结束\nFinal Score: {}".format(len(segments)), align="center", font=("Courier", 24, "normal"))
time.sleep(3)
turtle.bye()
# 如果接触到果实
if head.distance(fruit) < 20:
x = random.randint(-290, 290)
y = random.randint(-290, 290)
fruit.goto(x, y)
t = turtle.Turtle()
t.speed(0)
t.color('black')
t.shape('square')
t.penup()
segments.append(t)
# 移动身体
for i in range(len(segments) - 1, 0, -1):
x = segments[i - 1].xcor()
y = segments[i - 1].ycor()
segments[i].goto(x, y)
# 如果只有一个部件,将前进
if len(segments) > 0:
x = head.xcor()
y = head.ycor()
segments[0].goto(x, y)
move()
# 碰撞到身体
for segment in segments:
if segment.distance(head) < 20:
turtle.bgcolor('red')
turtle.color('white')
turtle.write("游戏结束\nFinal Score: {}".format(len(segments)), align="center", font=("Courier", 24, "normal"))
time.sleep(3)
turtle.bye()
# 休眠
time.sleep(delay)
```
代码解释:
1.定义了四个方向常量 UP、DOWN、LEFT 和 RIGHT。
2.设置了窗口大小,并创建了一个黑色的正方形作为蛇头。
3.创建了一个红色的圆形作为果实。
4.设置了一个存储蛇身体部分的列表。
5.定义一个 move() 函数,确定蛇移动的方式。
6.定义 go_up()、go_down()、go_left() 和 go_right() 四个函数,根据按键来移动蛇的方向。
7.使用 turtle.mainloop() 函数来持续循环绘制。
螺旋图案
下面实现螺旋图:
```
import turtle
t = turtle.Pen()
for i in range(0, 360, 5):
t.forward(i)
t.left(91)
```
代码解释:
1.导入turtle模块,这是 Python3.0 以上版本的导入方式。
2.t = turtle.Pen(),创建一个画笔。
3.使用 range() 函数生成一个从 0 到 359 的序列。步长为 5。
4.利用 forward(i) 和 left(91) 两个函数来操作画笔形成一个螺旋图形。
幻彩涂鸦
下面实现一个幻彩涂鸦:
```
from turtle import *
import random
colors = ['red', 'blue', 'green', 'orange', 'purple', 'pink', 'olive', 'brown', 'cyan']
# 画布设置
bgcolor('black')
speed(0)
# 画笔设置
width(6)
shape('turtle')
# 画图像
for i in range(500):
pencolor(random.choice(colors))
forward(i)
left(59)
```
代码解释:
1.导入 turtle 模块。
2.创建一个包括颜色值的列表。
3.设置画布背景为黑色,速度为 0,不会出现动画效果。
4.设置画笔的宽度和形状。
5.使用 for 循环绘制在每个方向的行程之前随机选择颜色。
6.循环 500 次,随着行程的 增加削减,往左旋转 59 度。
总结
Python Turtle 是一个很简单而有趣的模块,非常适合初学者进行 Python 编程学习和图形学探索。本文介绍了 Python Turtle 的基本绘图功能、动画和交互性的实现以及螺旋图案和幻彩涂鸦等创造性的应用。希望读者可以通过实践这些例子,积累一定的编程经验和知识,更好地学习 Python 编程。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/
年送礼太俗套,祝福没花招,只有祝愿亲爱的朋友们:天天被财神爷骚扰,时时被弥勒佛普照,大把赚钞票,快乐哈哈笑,幸福跟着跑。新年快乐!