通过视频教程学习了如何用python绘图,现在做一个简单的总结。
导入turtle库之后,即可以进行图形绘制。
import turtle
一个完整的作图流程:创建画布,设置笔的属性,绘制图形。
附带各个流程常用的方法。
1.创建画布
turtle.setup(800,800)
两个参数分别为画布的长和宽,例子是长宽都为800像素的画布
turtle.mainloop()
默认情况下,程序执行完后,作画产生对话框会立刻消失,需要在程序 末尾 处加上这行代码才能够保证“画布一直处于展开状态”。
2.设置笔
-
turtle.pencolor()设置笔的颜色,默认是黑色 括号内传参为两种:
-
第一种是字符,颜色相关的英语单词,例如:
turtle.color('green') 代表设置笔的颜色为绿色
-
第二种是(r,g,b)其中r,g,b为三个小于一的数值,代表三种颜色含量,根据三种颜色r,g,b值,确定颜色的不同。 例如
turtle.pencolor((0,0,0)) 代表黑色
-
-
turtle.width() 设置线宽(笔的粗细),括号内值越大,则线条越粗。
turtle.width(5) 代表笔的线宽为5像素
-
turtle.speed()设置笔的速度 1-10速度递增,其中0最快
turtle.speed(1) 设置笔的移动速度
3.绘制图形
一般前两步是作图的准备工作,在运行程序时会默认设置好画布的长和宽,同时也会设置笔的粗细、移动速度、颜色,也就是说前两步不是真正必须的。
可以在作图过程中同样可以修改笔的属性,更改颜色粗细等,已达到特殊的目的。
可以将函数画图与现实中画图类比,作图的主要过程便是移动笔的过程,产生的线条便是笔在画布上的移动轨迹。
-
改变笔的状态 笔相对于画布存在两种状态,拿起笔和放下笔
turtle.up() 拿起笔的函数
拿起之后,可以移动笔的位置而不产生痕迹。
turtle.down() 将笔放下的函数
移动到指定位置之后,需要将笔放下才能够继续作画。画布在图中呈现等同为坐标轴,中心为坐标原点(也是作画起点),水平向右为x轴正方向(也是默认笔的方向),向上为y轴正方向。
-
改变笔的方向
turtle.left(45)
left(旋转角度),向左旋转45度
turtle.right(45)
#2)right(旋转角度),向右旋转45度
turtle.seth(-90)
#3)设置角度,以水平向右为0度,方向与坐标轴表示的方向相同。 -
改变笔的位置可以通过两个函数操控笔的移动。
画直线-
turtle.forward()/turtle.fd()
笔沿着箭头方向向前移动,括号内数字即为笔移动的距离,两个函数等同
turtle.forward(100)沿着箭头方向移动一百个像素
-
turtle.back()/turtle.bk()
笔沿着箭头相反方向移动,括号内数字为笔移动的距离,两个函数等同 -
turtle.goto()
移动到指定位置,里面参数为二维坐标值
turtle.goto((-100,-100))
移动到指定位置,goto(二维坐标值) -
turtle.setx(100)
,使x坐标值为100,平行于y轴移动,使得x坐标值不变,括号内参数为新的y坐标值turtle.sety(-10)
使y坐标值为-10,平行于x轴移动,使得y坐标值不变,括号内参数为新的x坐标值 -
turtle.home()
#回到坐标原点,括号内没有参数
import turtle turtle.pencolor('red')#设置颜色 turtle.fd(200)#按照默认方向前进200像素 turtle.up()#抬笔 turtle.sety(-100)#将笔的y坐标变为-100 turtle.left(90)#向左转90度 turtle.down()#落笔 turtle.pencolor('green')#改变颜色 turtle.fd(200)#沿改变后的方向前进200像素 turtle.mainloop()
画曲线,原理,在笔前进的同时不断改变笔的前进方向,
结合,画出一个圆,不断前进,每次移动两个像素,移动同时笔的方向向左转一度,循环360次,随即产生一个圆形。import turtle for i in range(360): turtle.fd(2) turtle.left(1) turtle.mainloop()
简洁的办法画出一个圆
turtle.circle()
两种情况,以笔所处位置为起点。
1.传入一个参数,作为半径产生一个圆 例如turtle.circle(10)#画出一个半径为10的圆
2.传入两个参数,第一参数为半径,第二个参数作为角度,那么产生的结果将是一个圆弧,例如:
turtle.circle(50,90) #产生一个半径为50,角度为90的圆弧;即为半径为50的四分之一圆
import turtle turtle.circle(100,180)#画圆弧 turtle.dot(100)#画实心圆 turtle.mainloop()
-
-
填充颜色
- 产生实心圆
turtle.dot()
#以笔所处位置做圆心,以括号内传的参数为直径做实心圆,turtle.dot(10)
产生直径为10的实心圆。 - 为绘制图像填充颜色
分四步。
1.设置填充颜色turtle.fillcolor('red')
传参方式与上文turtle.pencolor相同
2.开始填充turtle.begin_fill()
3.以之前所述方式用线条绘制图形,所绘图形不需要一定为封闭
4.结束填充turtle.end_fill()
import turtle turtle.fillcolor('yellow')#设置填充颜色 turtle.begin_fill()#开始填充 turtle.circle(100)#绘制半径为100的圆 turtle.end_fill()#结束填充 turtle.up()#抬笔 turtle.forward(90)#将笔前移90像素 turtle.down()#落笔 turtle.fillcolor('green')#设置填充颜色 turtle.begin_fill()#开始填充 turtle.fd(100)#等同于turtle.forward() #与之前不同的是此时已经落笔 turtle.right(90)#向右转90度 turtle.fd(100) turtle.end_fill()#结束填充 turtle.mainloop()
- 产生实心圆