大家好,又见面了,我是你们的朋友全栈君。
海龟绘图
python2.6版本中后引入的一个简单的绘图工具,叫做海龟绘图(Turtle Graphics),出现在1966年的Logo计算机语言。
海龟绘图(turtle库)是python的内部模块,使用前导入即可 import turtle
海龟有3个关键属性:方向、位置和画笔(笔的属性有色彩、宽度和开/关状态)
1. 画布(canvas)
画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置
设置画布大小:
turtle.screensize(canvwidth=None, canvheight=None, bg=None)
参数分别为画布的宽(单位像素), 高, 背景颜色
如:
turtle.screensize(800, 600, “green”)
turtle.screensize() #返回默认大小(400, 300)
turtle.setup(width=0.5, height=0.75, startx=None, starty=None)
setup()设置窗体大小及位置,参数:
width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例
(startx, starty): 这一坐标表示 矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心
如:
turtle.setup(width=0.6, height=0.6)
turtle.setup(width=800, height=800, startx=100, starty=100)
2. 画笔
使用Pen()设定海龟画图对象,即画笔:turtle.Pen()
代码执行后就建立了画布,同时屏幕中间可以看见箭头(arrow),即所谓的海龟
在海龟绘图中,海龟的起点即画布中央为 (0,0),移动单位是像素 (pixel)
描述海龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中, 就是使用位置方向描述海龟(画笔)的状态
3.绘图命令
操纵海龟绘图有着许多的命令,这些命令可以划分为3种
- 画笔运动命令
- 画笔控制命令
- 全局控制命令
部分命令详解:
turtle.circle(radius, extent=None, steps=None)
描述: 以给定半径画圆
参数:
radius(半径):半径为正(负),表示圆心在画笔的左边(右边)画圆
extent(弧度) (optional)
steps (optional) (做半径为radius的圆的内切正多边形,多边形边数为steps)
turtle.setheading(angle) 别名:turtle.seth(angle) 改变行进方向,angle指行进方向的绝对角度,只改变方向但不行进
turtle.goto(x,y): 空间坐标体系(绝对坐标)
turtle.done(): 用来停止画笔绘制,但绘图窗体不关闭
4.绘图举例
绘制正方形:每输入一条指令,都可以看到海龟前进绘图和转向
绘制太阳花:
绘制分形树:
绘制趣图:
绘制五角星:
绘制小蟒蛇:
绘制科赫曲线及科赫雪花:
#绘制科赫雪花
import turtle
def koch(size,n):
if n == 0:
turtle.fd(size)
else:
for angle in [0,60,-120,60]:
turtle.left(angle)
koch(size/3,n-1)
def main():
turtle.setup(600,600)
turtle.penup()
turtle.goto(-200,100)
turtle.pendown()
turtle.pensize(2)
level = 3 #3阶科赫雪花,阶数
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.hideturtle()
turtle.done()
main()
绘制七段数码管:
绘制谢尔帕斯基三角形:
绘制玫瑰花:
绘制小猪佩奇:
最后几个绘图代码相对较长,可微信扫下图二维码或直接搜索”suoyue_zhan“关注公众号并于后台回复“海龟绘图”即可获取七段数码管、谢尔帕斯基三角形、玫瑰花和小猪佩奇等的源码
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/154118.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...