python(Mooc)--基本图形绘制

1.python蟒蛇绘制实例

源代码:

#pythonDraw.py
import turtle
turtle.setup(650, 350, 200, 200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
    turtle.circle(40, 80)
    turtle.circle(-40, 80)
turtle.circle(40, 80/2)
turtle.fd(40)
turtle.circle(16, 180)
turtle.fd(40 * 2/3)    
turtle.done()

运行结果:
在这里插入图片描述

2.turtle库的使用

turtle的一个画布空间,最小单位是像素

2.1 turtle的绘图窗体

在这里插入图片描述

(1)这里使用turtlre.setup函数设置窗体大小及位置

turtle.setup(width,height,startx,stary)

(2)四个参数,(宽度,高度,起始点的xy座标),后两个参数可选

  • 宽度高度指的是窗体本身的宽度高度
  • 起始点座标指的是左上角的位置座标,即相对于屏幕左上角的座标
  • setup函数并不是必须的,只有在需要控制窗体大小,和在屏幕中显示的位置时才用得着

(3)实例:
在这里插入图片描述

2.2 turtle空间座标体系

在turtle窗体内部形成了一个空间座标体系,包含绝对座标和海龟座标两种

2.2.1 绝对座标

(1)海龟最开始在画布正中心,也就是(0,0)座标,海龟运行方向向着画布右侧
在这里插入图片描述
(2)在这里使用turtle.goto(x,y)函数,它指的是让任何位置的海龟,无论在哪里,去到达(x,y)这个座标,下面有个实例
在这里插入图片描述

2.2.2 海龟座标

(1)海龟本身从它自身运动来讲,它的当前行进方向,无论朝向哪里,都叫行进方向,反方向叫后退方向,运行的左侧叫左侧方向,右侧叫右侧方向
在这里插入图片描述
(2)可以使用控制海龟的函数比如
注:参数d是指行进的像素

  • turtle.fd(d)指的是海龟正前方向运行
  • turtle.bk(d)指的是海龟反方向运行
  • turtle.circle(r,angle)指的是以海龟当前位置左侧的某一个点为圆心,进行曲线运行

2.3 turtle角度座标体系

2.3.1 绝对角度

在这里插入图片描述

2.3.2 海龟角度

在这里插入图片描述

2.3.3 实例:画个z字

在这里插入图片描述

2.4 RGB色彩体系

RGB指的是红绿蓝三种颜色组合。RGB每色取值范围0-255整数或0-1小数
(1)常用RGB色彩
在这里插入图片描述
(2)turtle的RGB色彩模式
在这里插入图片描述

3.turtle程序语法元素分析

3.1 库引用和import

(1)如果按照本文一开始的蟒蛇案例,会发现有非常多的turtle.的写法,稍显繁琐,这里使用另一种方法

form和import保留字共同完成
from <库名> import <函数名>
from <库名> import *
<函数名>(<函数参数>)

使用这种方式之后,就不需要重复使用库名.的形式,下面对一开始的蟒蛇绘制代码改造:
在这里插入图片描述
(2)两种import方式比较
在这里插入图片描述

  • 左边这种不会出现函数重名问题
  • 右边这种,库中的函数名称可能会与用户自定义的函数名称一致,函数名就会发生冲突,如果程序很短,也没有自己定义的函数,建议用这种
    (3)将以上两种方法统一考虑,可以使用import和as保留字共同完成
import <库名> as <库别名>
<库别名>.<函数名>(<函数参数>)

就是说给库取个小名,让小名去调用函数,同时库别名也是一个独立,跟适合自己的名字,同时也防止了库重名的问题。比如我们修改蟒蛇绘制代码:
在这里插入图片描述

3.2 turtle画笔控制函数

(1)画笔操作后一直有效,一般成对出现

  • turtle.penup(),别名turtle.pu(),意为擡起画笔,海龟在飞行
  • turtle.pendown(),别名turtle.pd(),意为落下画笔,海龟在爬行

(2)画笔设置后一直有效,直至下次重新设置

  • turtle.pensize(width),别名turtle.width(width),意为画笔宽度,海龟腰围
  • turtle.pencolor(color),color为颜色字符串或者rgb值意为画笔颜色,海龟在涂装。pencolor(color)的color参数可以有三种形式,举个例子:
颜色字符串:turtle.pencolor("purple")  //颜色首字母小写
RGB的小数值:turtle.pencolor(0.63,0.13,0.94)
RGB的元组值:turttle.pencolor((0.63,0.13,0.94))

3.3 turtle运动控制函数

(1)控制海龟行进:走直线&曲线

  • turtle.forward(d),别名turtle.fd(d),意为海龟向前行进,海龟走直线。参数d为行进距离,可为负数,即倒退行进
  • turle.circle(r,extent),意为根据半径r绘制extent角度的弧形。默认圆心在海龟左侧r距离位置上。参数extent可以不设置,那将绘制360°圆,以下两个例子:
    在这里插入图片描述

3.4 turtle方向控制函数

控制海龟面对方向,只改变海龟行进方向,并不实际上让海龟运动
(1)绝对角度:
turtle.setheading(angle)别名turtle.seth(angle),意为改变行进方向,海龟走角度
在这里插入图片描述
(2)海龟角度:

  • turtle.left(angle)海龟左转
  • turtle.right(angle)海龟右转

3.5 循环语句和range函数

(1)循环语句:按照一定次数循环执行一组语句

for <变量> in (<参数>)
   <被循环执行的语句>

<变量>表示每次循环的计数,0到<次数>-1
在这里插入图片描述

(2)range()函数:产生循环计数序列

  • range(N):产生0到N-1的整数序列,共N个,比如range(5),产生01234
  • range(M,N):产生M到N-1的整数序列,比如range(2,5),产生234
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章