上帝说:“要有光!” 于是,就有了光。 ---《圣经》旧约·创世纪篇
我要学画画,Python便有了turtle库。
turtle库是一个点线面的简单图像库。画布中心为坐标系原点,小海龟起始位置就在原点方向向右。
turtle界面
Python与库就如同人与工具,你需要确认库需已安装,安装我们就自行搜索吧。
Python库使用前需要先引用,如同我们有很多工具,需要先拿起它。
import turtle
画画前需要先准备画布(canvas)和画笔(pen)。
画布(canvas)
turtle.screensize(canvwidth=None, canvheight=None, bg=None)
# 建立画布宽、高、背景色
例如:
turtle.screensize(800,600,"blue")
turtle.screensize() # 画布默认大小(400,300)像素
或
tuetle.setup(width=0.5, height=0.75, startx=None, starty=None)
# width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例
# (startx, starty): 这一坐标表示 矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心
画笔(pen)
画笔的基本属性
turtle.pensize(width=None) 或 turtle.width(width=None) # 设置画笔粗细
turtle.pencolor(*args) # 设置画笔颜色
画笔的基础控制
turtle.penup() 或 turtle.pu() # 抬起画笔
turtle.pendown() 或 turtle.pd() # 落下画笔
turtle.speed(speed) # 画笔移动的速度,[ 0,10]的整数,越大越快。
turtle.go(x,y) # 移动画笔至画布坐标系的系X,Y点
方向控制
turtle.forward(distance) 或 turtle.fd(distance) # 向前行进,走直线,d可以为负值
turtle.backward(distance) 或 turtle.bd(distance) # 向后行进,走直线,d可以为负值
turtle.setheading(to_angle) 或 turtle.seth(to_angle) # 改变行进方向,但不行进,为绝对角度。
turtle.left(angle) # 画笔向左改变方向角度
turtle.right(angle) # 画笔向右改变方向角度
绘制弧或圆
turtle.circle(radius,extent=None,steps=None) # 以radius为半径绘制extent角度的弧形,extent可缺省,默认绘制整圆。randius为正,即在前进方向的左侧绘制,为负,即在右侧绘制。
turtle.dot(size=None, *color) # 绘制一个指定直径和颜色的圆
其他一些操作
turtle.colormode(cmode=None) # 切换RGB色彩模式,1.0:RGB小数模式,255:RGB整数模式
turtle.color(*args) # 同时设置pencolor=color1, fillcolor=color2
turtle.filling() # 返回当前是否在填充状态
turtle.begin_fill() # 准备开始填充图形
turtle.end_fill() # 填充完成
turtle.hideturtle() # 隐藏画笔的turtle形状
turtle.showturtle() # 显示画笔的turtle形状
turtle.clear() # 清空turtle窗口,但是turtle的位置和状态不会改变
turtle.reset() # 清空窗口,重置turtle状态为起始状态
turtle.undo() # 取消最后一个图的操作
turtle.isvisible() # 返回当前turtle是否可见
turtle.stamp() # 复制当前图形
turtle.write(s , [font=("font-name",font_size,"font_type")]) # 写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项
turtle.mainloop() 或 turtle.done() #启动事件循环 -调用Tkinter的mainloop函数。必须是乌龟图形程序中的最后一个语句。
turtle.mode(mode=None) # 设置乌龟模式(“standard”,“logo(向北或向上)”或“world()”)并执行重置。如果没有给出模式,则返回当前模式。
turtle.undo() # 取消最后一个图的操作
turtle.isvisible() # 返回当前turtle是否可见
turtle.stamp() # 复制当前图形
turtle.write(s , [font=("font-name",font_size,"font_type")]) # 写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项
写在最后