• turtle库的学习笔记(python)


    turtle库的学习笔记(python)

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

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

    (1)import turtle

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

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

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

      (3)  import turtle as t

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

     二、绘图的基础知识

    (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度,逆时针为正。只改变行进方向但不行进。

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

    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的参数也是可选项

    三、绘图举例

    (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()

     

     

     

     

     

  • 相关阅读:
    [ERR] Node 10.211.55.8:7001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
    PAT A1137 Final Grading (25 分)——排序
    PAT A1136 A Delayed Palindrome (20 分)——回文,大整数
    PAT A1134 Vertex Cover (25 分)——图遍历
    PAT A1133 Splitting A Linked List (25 分)——链表
    PAT A1132 Cut Integer (20 分)——数学题
    PAT A1130 Infix Expression (25 分)——中序遍历
    PAT A1142 Maximal Clique (25 分)——图
    PAT A1141 PAT Ranking of Institutions (25 分)——排序,结构体初始化
    PAT A1140 Look-and-say Sequence (20 分)——数学题
  • 原文地址:https://www.cnblogs.com/Cute-pig/p/12496619.html
Copyright © 2020-2023  润新知