亲爱的编程爱好者和学习者们,今天在我们的“Python每日一学”栏目中,让我们一起解锁一个有趣又富有教育意义的模块——Turtle(海龟绘图)。它不仅能够帮助初学者轻松入门编程逻辑,还能激发无限创意,让编程与艺术碰撞出美丽的火花。
Turtle图形模块源于Logo编程语言的理念,通过模拟一只海龟在二维平面上移动并绘制线条,形象生动地展示了程序设计中的序列、循环和条件语句等基础概念。在Python的世界里,这只虚拟的海龟同样可以按照指令翩翩起舞,在屏幕上留下缤纷多彩的图案。
(1)启动海龟环境
首先在使用海龟画图之前一定要启动海龟环境
from turtle import *
(2)认识海龟坐标系
1、turtle的绘图窗体(界面)
setup(),设置窗体大小及位置,语法格式是:
turtle.setup(width,height,startx,starty)
其中,width和height是窗体的宽度和高度,后两个为可选参数,是窗体离屏幕左上角的水平和纵向的距离,如果忽略不写,则在屏幕正中间
注意:setup()非必须,不设置的话就采用默认值即可
1、turtle的绘图窗体(界面)
绝对坐标(以图中心也就是小乌龟原始点为(0,0))
goto(-100,100)#小乌龟头朝右,goto(-100,100),到了这个点依然头朝右
海龟行走常用的函数
from turtle import *
fd(100)#像海龟的正前方方向行走100
bk(200)#向海龟的反方向运行200
circle(200,30)#以海龟的当前位置左侧的半径为r的一个点为圆心,进行曲线运行
seth(45)#改变海龟行进方向,seth()只改变方向不前进,括号里的数值为如同的绝对角度
执行过程是如下图所示:
海龟角度的转向语法:
turtle.left(angle) turtle.right(angle)
参考代码:
from turtle import *
left(30)
right(30)
2、海龟画笔的颜色设定
先认识几个常见的颜色值,如表格所示
英文名称 | RGB整数值 | RGB小数值 | 中文名称 |
white | 255,255,255 | 1,1,1 | 白色 |
yellow | 255,255,0 | 1,1,0 | 黄色 |
magenta | 255,0,255 | 1,0,1 | 洋红 |
cyan | 0,255,255 | 0,1,1 | 青色 |
blue | 0,0,255 | 0,0,1 | 蓝色 |
black | 0,0,0 | 0,0,0 | 黑色 |
seashell | 255,245,238 | 1,0.96,0.93 | 海贝色 |
gold | 255,215,0 | 1,0.84,0 | 金色 |
pink | 255,192,203 | 1,0.84,0 | 粉红色 |
brown | 165,42,42 | 0.65,0.16,0.16 | 棕色 |
pruple | 160,32,240 | 0.63,0.13,0.94 | 紫色 |
tomato | 255,99,71 | 1,0.39,0.28 | 番茄色 |
海龟画笔颜色方法,先设定色彩的数值,再设定画笔的颜色:
turtle.colormode(mode)改变色彩数值的使用。默认采用小数值,可切换整数值
1.0:RGB小数值模式
255:RGB整数值模式
例如,将画笔颜色设置为洋红
from turtle import *
colormode(255)#设定颜色值为整数值,忽略则为小数值
color(255,0,255)#设定画笔颜色
fd(100)#像海龟的正前方方向行走100
bk(200)#向海龟的反方向运行200
circle(200,30)#以海龟的当前位置左侧的半径为r的一个点为圆心,进行曲线运行
seth(45)
执行结果是:
(3)turtle常见的方法
- 移动和绘制
forward() | fd() 前进
backward() | bk() | back() 后退
right() | rt() 右转
left() | lt() 左转
goto() | setpos() | setposition() 前往/定位
setx() 设置x坐标
sety() 设置y坐标
setheading() | seth() 设置朝向
home() 返回原点
circle() 画圆
dot() 画点
stamp() 印章
clearstamp() 清除印章
clearstamps() 清除多个印章
undo() 撤消
speed() 速度
- 获取海龟的状态
position() | pos() 位置
towards() 目标方向
xcor() x坐标
ycor() y坐标
heading() 朝向
distance() 距离
- 设置与度量单位
degrees() 角度
radians() 弧度
- 绘图状态
pendown() | pd() | down() 画笔落下
penup() | pu() | up() 画笔抬起
pensize() | width() 画笔粗细
pen() 画笔
isdown() 画笔是否落下
- 颜色控制
color() 颜色
pencolor() 画笔颜色
fillcolor() 填充颜色
- 填充
filling() 是否填充
begin_fill() 开始填充
end_fill() 结束填充
- 更多绘图控制
reset() 重置
clear() 清空
write() 书写
- 海龟可见性
showturtle() | st() 显示海龟
hideturtle() | ht() 隐藏海龟
isvisible() 是否可见
4、案例:用海龟画趣味图形
from turtle import *
setup(480,360)
m=20#重复个数
n=5#画几边形
color=['red','green','gold','brown','blue']
for i in range(1,m+1):
left(360/m)
for j in range(1,n+1):
pencolor(color[j%n])
fd(100)
left(360/n)
运行结果:
今日的Python学习之旅,就让我们暂驻脚步,在这个简明而饶有趣味的海龟绘图实例中收获喜悦与启示。虽然我们只是触及了海龟模块的冰山一角,但已足以点燃对编程美学的热情。在未来的篇章中,我们将继续深化对Turtle的理解,携手绘制更为丰富多姿的图形画卷,进一步发掘Python编程在视觉艺术创造上的无限可能。
回顾今日的学习,不禁让人思考:在诸位的编程探险历程中,是否曾有过驾驭Python的海龟绘图,将其化为手中画笔,挥洒出独一无二的视觉艺术之作的经历呢?同时,对于这种直观易懂的可视化编程方式,您觉得它应当如何巧妙地嵌入现代教学场景,以何种方式助力培养学生们跃动的创新思维和严谨的逻辑架构能力呢?
在此诚挚邀请广大读者朋友积极发表见解与心得,共同在评论区展开一场关于如何借力Python海龟绘图工具提升编程学习互动性与趣味性的大讨论。期待您分享宝贵的经验故事,以及更多利用Python Turtle创作出的精美作品,共同见证编程与艺术交融的魅力所在!