turtle的简单绘图
接触python,就发现python是一门很有趣的课程。往往只需要利用几行简单的代码,就能绘制出简单漂亮的图案。毫不夸张的说,掌握好turtle库,就能绘制一整片蓝图。有时候,当我们遇到一些对称图形的时候,利用 for in 循环语句,也能达到很好的效果。我们先了解一些关于turtle库的基本函数。
turtle库的基本函数:
一、绘图窗口设置命令
①turtle.setup(width,height,starty,starty) 注:(starty,starty)指的是绘图窗体左上角位置的坐标,这两个参数可选,若为空,则窗口位于屏幕中心
turtle.setup(100,100) turtle.setup800, 800, 100,100)
②turtle.screensize(canvwidth=None, canvheight=None, bg=None) 参数分别为画布的宽(单位像素), 高, 背景颜色 注:若括号为空,则默认值为(400,300)
turtle.screensize(400, 300, "red")
二、坐标体系
(1)空间坐标体系
①turtle.goto(x,y):直接跳转到(x,y)点,以绘图窗口中心为原点,向右为x轴,向上为y轴。
②turtle.fd(d)、turtle.forward(d):以当前方向,往前行进d像素。
③turtle.bk(d)、turtle.backword(d):保持当前方向不变,往后退行d像素。
④turtle.circle(r,angle):从当前位置以r为半径圆的angle角度旋转。
(2)角度坐标体系
①turtle.setheading(angle)也可简写为turtle.seth() 表示海龟改变行进角度,但不运动。绘图窗体以x轴为起点,将方向偏转为angle度,逆时针为正。
②turtle.left(angle):在当前行进方向的基础上,向左旋转angle度。
③turtle.right(angle):在当前行进方向的基础上,向右旋转angle度。
(3)画笔控制命令
①turtle.penup() 表示 抬笔
turtle.pendown() 表示 落笔
②turtle.pensize(x) 表示画笔宽度
③turtle.pencolor(颜色名red/RGB三元组/颜色编码) 表示画笔颜色 e.g.turtle.pencolor("red") 画笔为红色
turtle.colormode(mode)
④turtle.fillcolor(colorstring):绘制图形的填充颜色
turtle.begin_fill():开始填充
turtle.end_fill():结束填充
turtle.done() 写在末尾,程序运行完不会退出
注意:写代码之前要引入turtle库。
import turtle
图形绘制:一箭穿心
一、绘制一个爱心
import turtle turtle.color('red', 'pink') turtle.pensize(2) turtle.pendown() turtle.seth(150) turtle.begin_fill() turtle.fd(40) turtle.circle(40 * -3.745, 45) turtle.circle(40 * -1.431, 165) turtle.left(120) turtle.circle(40 * -1.431, 165) turtle.circle(40 * -3.745, 45) turtle.fd(40) turtle.end_fill()
效果如图
二、绘制箭
turtle.pensize(5) turtle.pencolor("black") turtle.seth(100) turtle.penup() turtle.fd(90) turtle.pendown() turtle.seth(75) turtle.fd(20) turtle.seth(-155) turtle.fd(20) turtle.seth(25) turtle.penup() turtle.fd(20) turtle.pendown() turtle.seth(-130) turtle.fd(120) turtle.fillcolor("black") turtle.begin_fill() turtle.seth(180) turtle.fd(10) turtle.seth(50) turtle.fd(15) turtle.seth(0) turtle.fd(10) turtle.seth(-80) turtle.fd(10) turtle.seth(-130) turtle.fd(15) turtle.seth(100) turtle.fd(10) turtle.end_fill()
三、将两者组合起来
import turtle turtle.color('red', 'pink') turtle.pensize(2) turtle.pendown() turtle.seth(150) turtle.begin_fill() turtle.fd(40) turtle.circle(40 * -3.745, 45) turtle.circle(40 * -1.431, 165) turtle.left(120) turtle.circle(40 * -1.431, 165) turtle.circle(40 * -3.745, 45) turtle.fd(40) turtle.end_fill() turtle.pensize(5) turtle.pencolor("black") turtle.seth(100) turtle.penup() turtle.fd(90) turtle.pendown() turtle.seth(75) turtle.fd(20) turtle.seth(-155) turtle.fd(20) turtle.seth(25) turtle.penup() turtle.fd(20) turtle.pendown() turtle.seth(-130) turtle.fd(120) turtle.fillcolor("black") turtle.begin_fill() turtle.seth(180) turtle.fd(10) turtle.seth(50) turtle.fd(15) turtle.seth(0) turtle.fd(10) turtle.seth(-80) turtle.fd(10) turtle.seth(-130) turtle.fd(15) turtle.seth(100) turtle.fd(10) turtle.end_fill()
效果如图
掌握了turtle库之后,我们可以根据自己的想法,画出更复杂,更漂亮的图画。