1.9
简单图形有很多种,如三角形、四边形、五边形、圆形等。它们虽然简单,但也有一定的规律,如圆形有半径,三角形有边长和内角等。本任务要求绘制一个红色的等边三角形,图形大小和位置自行设置。效果如图1-49所示。
图1-49 效果
Python为用户提供了非常完善的基础代码库,而turtle库是其中一个很流行的图像绘制的函数库,又被称为海龟作图库。可以将绘制过程想象成一只小海龟在一个横轴为 x 、纵轴为 y 的坐标系中,从原点(0,0)位置,根据一组函数指令在这个平面坐标系中移动,通过它爬行的路径绘制图形。在使用turtle库之前,首先需要导入turtle库,设置窗体属性,再通过调用turtle库中的函数指令绘制图形。turtle库常见的函数及其说明见本书附录。
1.导入turtle库
导入turtle库有3种方式:直接导入、导入库并为库取别名,以及导入库中所有的类、函数及变量等。
2.turtle窗体布局
图1-50展示了计算机屏幕与turtle窗体的位置关系,计算机屏幕左上角的坐标为(0,0),坐标(startx,starty)是turtle窗体的左上角位置,height为turtle窗体的高度,width为turtle窗体的宽度。需要强调的是,在turtle窗体内部有一个画布,画布也有一个坐标系,如图1-51所示,该坐标系的原点(0,0)在画布的中心位置,海龟默认的运动方向为 x 轴正方向。
图1-50 窗体布局
图1-51 坐标体系
3.相关turtle库函数说明
●turtle.setup(width,height[,startx,starty]):设置窗体大小,前两个参数分别表示窗体的宽和高,后两个参数表示窗体在屏幕上的位置省略后面两个参数时,窗体默认在计算机屏幕中心。
●turtle.pencolor(color):若没有参数传入,则返回当前画笔颜色;若传入参数表示设置画笔颜色,参数值可以是字符串如“green”“red”等,也可以是RGB三元组。
●turtle.fillcolor(colorstring):设置图形的填充颜色。
●turtle.color(color1,color2):同时设置画笔颜色(pencolor=color1)和填充颜色(fillcolor=color2)。如果只有一个参数值,则说明画笔颜色和填充颜色相同。
●turtle.begin_fill():在绘制要填充的形状之前调用。
●turtle.end_fill():填充上次调用begin_fill()之后绘制的形状。
●turtle.forward(distance)|turtle.fd(distance):向当前画笔方向移动distance个像素。
●turtle.backward(distance)|turtle.bk(distance)|turtle.back(distance):向当前画笔相反方向移动distance个像素。
●turtle.goto(x,y):将画笔移动到坐标为(x,y)的位置。
●turtle.penup():提笔,移动时不绘制图形,用于另起一个地方绘制。
●turtle.pendown():落笔,移动时绘制图形。
●turtle.right(angle)|turtle.rt(angle):顺时针移动旋转,旋转角度为参数angle。
●turtle.left(angle)|turtle.lt(angle):逆时针移动旋转,旋转角度为参数angle。
任务要求绘制红色三角形,需要设置画笔颜色和填充颜色;绘制三角形实际上是先绘制一条线段,然后旋转一定角度,重复上述动作,直到完成图形绘制,需要用到forward()函数和left()函数或right()函数;图形内部填充颜色需要用到begin_fill()和end_fill()函数。绘制三角形时,旋转的角度计算方式如图1-52所示。
1.10
图1-52 绘制图形分析
(1)在PyCharm中,右击左侧列表中的项目名称chapter01,选择“New”→“Python File”,如图1-53所示。在弹出的对话框中将文件命名为“1-3 绘制图形.py”,按“Enter”键,进入代码编辑界面。
图1-53 新建Python文件
(2)在新建的Python文件中,输入下面的代码,实现导入turtle库、设置窗体大小。选择“Run”→Run'1-3绘制图形'”,运行代码,可以看到会弹出白色窗体。
(3)绘制红色三角形。将画笔颜色和填充颜色设置为红色,绘制图形前先开启填充指令,图形绘制结束后调用结束填充指令对图形进行颜色填充。三角形的绘制方法是:调用forward(200)函数绘制200个单位长度的线段,再调用left(120)使海龟前进的方向。向左旋转120°,重复上述操作两次绘制另外两条边,即可完成三角形的绘制。在步骤(2)预留绘制三角形的位置,输入绘制代码并运行。
拓展任务:绘制图形——简单图形
(1)模仿绘制红色三角形的方法绘制内部无填充的圆形、绿色的正方形、蓝色的五边形、紫色线条/粉色填充的六边形,图形大小和位置自行设置。
(2)使用turtle库不仅可以绘制简单图形,还可以绘制出炫彩的螺旋线、动画等。学习者可以自行练习尝试。
1.11