QQ个性网:专注于分享免费的QQ个性内容

关于我们| 网站公告| 广告服务| 联系我们| 网站地图

搜索
编程 JavaScript Java C++ Python SQL C Io ML COBOL Racket APL OCaml ABC Sed Bash Visual Basic Modula-2 Logo Delphi IDL Groovy Julia REXX Chapel X10 Forth Eiffel C# Go Rust PHP Swift Kotlin R Dart Perl Ruby TypeScript MATLAB Shell Lua Scala Objective-C F# Haskell Elixir Lisp Prolog Ada Fortran Erlang Scheme Smalltalk ABAP D ActionScript Tcl AWK IDL J PostScript IDL PL/SQL PowerShell

Python中如何设置Turtle库的海龟形状,海龟形状自定义,你会吗?

日期:2025/04/03 10:50来源:未知 人气:54

导读:前面内容,我们介绍了如何利用Turtle库画一个可爱的笑脸。python做简单的笑脸的编程,基础扎实,海龟绘图也可以游刃有余!我们知道,Turtle库在绘图时,默认有一只小乌龟在屏幕上移动,通过它移动的轨迹,我们进行绘图。海龟上篇文章中,有小伙伴留言询问:如何改变Turtle画笔的形状,就是把那只可爱的小乌龟用其它形状替换(那还是Turtle库吗?^-^),但是这样个性化设置我......

前面内容,我们介绍了如何利用Turtle库画一个可爱的笑脸。

python做简单的笑脸的编程,基础扎实,海龟绘图也可以游刃有余!

我们知道,Turtle库在绘图时,默认有一只小乌龟在屏幕上移动,通过它移动的轨迹,我们进行绘图。

海龟

上篇文章中,有小伙伴留言询问:如何改变Turtle画笔的形状,就是把那只可爱的小乌龟用其它形状替换(那还是Turtle库吗?^-^),但是这样个性化设置我们可以制作动画了。

实现各种动画效果

今天,我们安排解决一下这个问题。

解决问题之前,我们先来了解下Turtle库中画笔形状除了小乌龟,还有哪些画笔形状?

01默认画笔形状

我们还是通过一个案例来进行演示,从案例中我们学习小乌龟的一些常用函数。

获取画笔形状很简单,直接使用下面的方法:

import turtleprint(turtle.getshapes())我们打印输出看下结果

['arrow', 'blank', 'circle', 'classic', 'square', 'triangle', 'turtle']

字面意思了解,应该是:

【箭头,空白,圆,经典样式,方形,三角形,乌龟】

很好奇,它们到底长啥样呢?我们利用一个程序来将它们展现出来

程序展示海龟样式

好了,原来它们长这样,那么这些默认样式如何应用到海龟的画笔上呢,一个函数搞定

turtle.shape(name='classic') # 将样式设置为经典箭头其它样式直接改变name参数即可。

还有一个问题,上面七个默认形状看起来比平时大一点?当然了,这里用代码进行了调整

t.turtlesize(3, 3, 1)这里将其长度、宽度扩大了3倍,形状边框没有发生变化。

别着急,文末赠送代码哦!

文末附赠代码

我们知道,海龟的运动轨迹可以绘图,那么,我们能不能自己画一个样式,然后将这个样式应用到海龟的形状上面呢?带着这个问题,我们接着往下看!

02自己用海龟画一个形状

额,自己画一个形状?画什么形状呢?那就把我们上一篇文章中的笑脸画出来作为它的形状怎么样?其实可以的,但是今天我们再不重复之前的内容了,这个课题交给小伙伴自己去实现吧。

这里我们制作一个五角星的形状!这是个大胆的想法,小伙伴跟我去实现它吧

我们先把五角星画出来,就几行代码,也很好理解。

绘制五角星效果展示

五角星画出来了,那么,我们如何把它变成小海龟的一个形状呢?需要注意下面几个问题:

1.作为形状,它应该是静态的(禁用小海龟运动的动画,暂时这么理解),那么,我们如何把它变成静态的(不展示动画)?

turtle.tracer(False)

将参数设置为False时,不展示海龟运动的动画。问题就好解决了,开始画形状之前,将动画禁用,画完形状后启用动画即可。

2.如何获得海龟运动的轨迹图像?

turtle.begin_poly() # 开始记录海龟运动轨迹的点…… # 这里是海龟运动的控制相关代码turtle.end_poly() # 结束记录shape = turtle.get_ploy() # 获得形状定点obj,这里的obj虽然类型为tuple,但 # 我们可以把它当做一个形状对象来处理这样,我们就获得了海龟的轨迹图像,它可以作为一个形状来使用

3.如何把我们画出来的形状添加到海龟默认形状中呢?

还以一个函数搞定!

turtle.register_shape("shapename",shape) # 这里的shape就是第二个问题 # 里面提到的shape我们来整合下代码,然后利用我们添加的形状再绘制一个正方形,效果见下图

自定义海龟形状并绘图

从上面的例子中我们可以看出,自定义形状是没有颜色的,默认填充为黑色。

演示例子中间是我们定义的图形,然后我们利用这个图形进行绘图,让它绘制一个正方形。文末有获取代码方式。

如何自定义形状?

好了,这样就结束了?其实并没有,我们在使用Turtle时,耗费大量时间去画乌龟形状,那显然是得不偿失的,如果有现成的图片文件供我们使用,那是最有效的办法。

Turtle库的设计者已经替我们考虑到了,接着往下看!

03海龟可以用动态图片替代?

除了自己绘制的图形,它可以使用gif图片代替,这样你就可以用任意gif格式图片代替海龟的形状了,使用方法如下

turtle.register_shape('runner.gif') # 先注册t.shape('runner.gif') # 使用怎么样?是不是很简单?

我们来看下面一个例子

使用gif图片后效果

这个是直接使用gif图片的效果,喜欢的小伙伴自己试试看吧!

好了,今天的内容就到这里了,喜欢Python编程的小伙伴关注我,后续推出更加精彩的内容,小伙伴们有好的想法,欢迎下方留言,我会第一时间关注!

关注我,私信“turtlestyle”获取今天的几个例子源代码。

本文为作者原创,转载请注明出处,百家号:Python高手养成

关于我们|网站公告|广告服务|联系我们| 网站地图

Copyright © 2002-2023 某某QQ个性网 版权所有 | 备案号:粤ICP备xxxxxxxx号

声明: 本站非腾讯QQ官方网站 所有软件和文章来自互联网 如有异议 请与本站联系 本站为非赢利性网站 不接受任何赞助和广告