turtle库的学习笔记(python)

turtle库的学习笔记(python)

        turtle(海龟)是Python重要的标准库之一,它可以进行基本的图形绘制。turtle图形绘制的概念诞生于1969年,成功应用于LOGO编程语言。
turtle库绘制图形有一个基本框架:一个小海龟在坐标系中爬行,其爬行轨迹造成了绘制图形。刚开始绘制时,小海龟位于画布正中央,此处坐标为(0,0),前进方向为水平右方。  在Python3系列版本安装目录的Lib文件下能够找到turtle.py文件。
       

  1、用import保留字对turtle库的引用有以下3种方式,效果相同:

(1)import turtle

 对turtle库中函数调用采用turtle.<函数名>( )形式:python

(2)from turtle import * (当程序中有多个库时容易混淆产生错误)

对turtle库中函数调用采用<函数名>( )形式,再也不使用turtle.做为前导:编程

  (3)  import turtle as t

保留字as将turtle库给予别名t, 则对turtle库中函数调用采用更简洁的t.<函数名>( )形式:框架

 2、绘图的基础知识

(1)绘图窗口设置命令

turtle.setup(400,300,200,100):参数以此(宽,高,距离屏幕左边距离,距离屏幕上方距离),屏幕左上角原点,单位像素。编程语言

 (2)运动命令

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角度旋转。

编码

(3)方向设置命令

turtle.seth(angle):以x轴方向为起点将方向偏转为angle度,逆时针为正。只改变行进方向但不行进。spa

turtle.left(angle):在当前行进方向的基础上,向左旋转angle度。3d

turtle.right(angle):在当前行进方向的基础上,向右旋转angle度。

(4)画笔控制命令

turtle.penup():抬笔

turtle.pendown():落笔

turtle.pensize(width):画笔粗细

turtle.pencolor(颜色名red/RGB三元组/颜色编码):画笔颜色

turtle.fillcolor(colorstring):绘制图形的填充颜色

turtle.begin_fill():开始填充

turtle.end_fill():结束填充

turtle.filling():返回当前是否在填充状态

(5)全局控制命令

turtle.clear():清空turtle窗口,可是turtle的位置和状态不会改变

turtle.reset():清空窗口,重置turtle状态为起始状态

turtle.undo():撤销上一个turtle动做

turtle.isvisible():返回当前turtle是否可见
stamp():复制当前图形
turtle.write(s[,font=("font-name",font_size,"font_type")]):写文本,s为文本内容,font是字体的参数,里面分别为字体名称,大小和类型;font为可选项, font的参数也是可选项

3、绘图举例

(1)彩色小蟒蛇

 1 #PythonDraw.py  2 import turtle as tt  3 def drawSnake(rad,angle,len,neckrad):  4 colors=["LightCoral","orange","yellow","MediumSpringGreen","cyan","MediumBlue"]#六种颜色  5 for i in range(len):  6  tt.color(colors[i])  7  tt.circle(rad,angle)  8 tt.circle(-rad,angle)  9 tt.color("Fuchsia") 10 tt.circle(rad,angle/2) 11  tt.fd(rad) 12 tt.circle(neckrad+1,180) 13 tt.fd(rad*2/3) 14 15 16 def main(): 17 tt.setup(1300,800,0,0) 18  tt.penup() 19 tt.goto(-350,0) 20  tt.pendown() 21 pythonsize=30 22 tt.pensize(30) 23 tt.seth(-40) 24 drawSnake(40,80,6,pythonsize/2) 25 26 27 main() 28 tt.done()

Python小海龟绘图之颜色码对照表:

https://mp.weixin.qq.com/s?src=11&timestamp=1584246963&ver=2217&signature=lMb0twV32ZppcpRo3AfqFMZi0vtHB3oLPjjYMCACHz9PNO7EoncrvGCRWUeg5FYzGioV2aAExFCASNJUG7vGl2R5THDCOZwiQqHF0DvHGH4i7u3KYCY*LPJW11OuBrkj&new=1

 

(2)玫瑰花的绘制

 

 1 from turtle import *  2 import time  3  4 setup(5000,5000,0,0)  5 speed(0)  6 penup()  7 pencolor("SaddleBrown") #改变画笔颜色  8 seth(90)  9 fd(340)  10 seth(0)  11 pendown()  12  13 speed(5)  14 begin_fill()  15 fillcolor('blue') #改变花瓣颜色  16 circle(50,30)  17  18 for i in range(10):  19 fd(1)  20 left(10)  21  22 circle(40,40)  23  24 for i in range(6):  25 fd(1)  26 left(3)  27  28 circle(80,40)  29  30 for i in range(20):  31 fd(0.5)  32 left(5)  33  34 circle(80,45)  35  36 for i in range(10):  37 fd(2)  38 left(1)  39  40 circle(80,25)  41  42 for i in range(20):  43 fd(1)  44 left(4)  45  46 circle(50,50)  47  48 time.sleep(0.1)  49  50 circle(120,55)  51  52 speed(0)  53  54 seth(-90)  55 fd(70)  56  57 right(150)  58 fd(20)  59  60 left(140)  61 circle(140,90)  62  63 left(30)  64 circle(160,100)  65  66 left(130)  67 fd(25)  68  69 penup()  70 right(150)  71 circle(40,80)  72 pendown()  73  74 left(115)  75 fd(60)  76  77 penup()  78 left(180)  79 fd(60)  80 pendown()  81  82 end_fill()  83  84 right(120)  85 circle(-50,50)  86 circle(-20,90)  87  88 speed(1)  89 fd(75)  90  91 speed(0)  92 circle(90,110)  93  94 penup()  95 left(162)  96 fd(185)  97 left(170)  98 pendown()  99 circle(200,10) 100 circle(100,40) 101 circle(-52,115) 102 left(20) 103 circle(100,20) 104 circle(300,20) 105 speed(1) 106 fd(250) 107 108 penup() 109 speed(0) 110 left(180) 111 fd(250) 112 circle(-300,7) 113 right(80) 114 circle(200,5) 115 pendown() 116 117 left(60) 118 begin_fill() 119 fillcolor('gold') #改变叶子颜色 120 circle(-80,100) 121 right(90) 122 fd(10) 123 left(20) 124 circle(-63,127) 125 end_fill() 126 127 penup() 128 left(50) 129 fd(20) 130 left(180) 131 132 pendown() 133 circle(200,25) 134 135 penup() 136 right(150) 137 138 fd(180) 139 140 right(40) 141 pendown() 142 begin_fill() 143 fillcolor('gold') #改变叶子颜色 144 circle(-100,80) 145 right(150) 146 fd(10) 147 left(60) 148 circle(-80,98) 149 end_fill() 150 151 penup() 152 left(60) 153 fd(13) 154 left(180) 155 156 pendown() 157 speed(1) 158 circle(-200,23) 159 160 161 162 exitonclick()

 

相关文章
相关标签/搜索