zoukankan      html  css  js  c++  java
  • turtle的简单绘图

           接触python,就发现python是一门很有趣的课程。往往只需要利用几行简单的代码,就能绘制出简单漂亮的图案。毫不夸张的说,掌握好turtle库,就能绘制一整片蓝图。有时候,当我们遇到一些对称图形的时候,利用 for   in  循环语句,也能达到很好的效果。我们先了解一些关于turtle库的基本函数。

    turtle库的基本函数:

    一、绘图窗口设置命令

    ①turtle.setup(width,height,starty,starty)  注:(starty,starty)指的是绘图窗体左上角位置的坐标,这两个参数可选,若为空,则窗口位于屏幕中心

    turtle.setup(100,100)
    turtle.setup800, 800, 100,100)

    ②turtle.screensize(canvwidth=None, canvheight=None, bg=None)     参数分别为画布的宽(单位像素), 高, 背景颜色  注:若括号为空,则默认值为(400,300)

    turtle.screensize(400, 300, "red")

    二、坐标体系

    (1)空间坐标体系

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

    (2)角度坐标体系

    ①turtle.setheading(angle)也可简写为turtle.seth()    表示海龟改变行进角度,但不运动。绘图窗体以x轴为起点,将方向偏转为angle度,逆时针为正。

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

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

    (3)画笔控制命令

    ①turtle.penup()  表示    抬笔

        turtle.pendown()  表示   落笔

    ②turtle.pensize(x)  表示画笔宽度

    ③turtle.pencolor(颜色名red/RGB三元组/颜色编码)  表示画笔颜色  e.g.turtle.pencolor("red")  画笔为红色

       turtle.colormode(mode)

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

        turtle.begin_fill():开始填充

        turtle.end_fill():结束填充

    turtle.done()  写在末尾,程序运行完不会退出

    注意:写代码之前要引入turtle库。

      import turtle 

    图形绘制:一箭穿心

    一、绘制一个爱心

    import turtle
    turtle.color('red', 'pink')
    turtle.pensize(2)
    turtle.pendown()
    turtle.seth(150)
    turtle.begin_fill()
    turtle.fd(40)
    turtle.circle(40 * -3.745, 45)
    turtle.circle(40 * -1.431, 165)
    turtle.left(120)
    turtle.circle(40 * -1.431, 165)
    turtle.circle(40 * -3.745, 45)
    turtle.fd(40)
    turtle.end_fill()
    

     

    效果如图

     二、绘制箭

    turtle.pensize(5)
    turtle.pencolor("black")
    turtle.seth(100)
    turtle.penup()
    turtle.fd(90)
    turtle.pendown()
    turtle.seth(75)
    turtle.fd(20)
    turtle.seth(-155)
    turtle.fd(20)
    turtle.seth(25)
    turtle.penup()
    turtle.fd(20)
    turtle.pendown()
    turtle.seth(-130)
    turtle.fd(120)
    turtle.fillcolor("black")
    turtle.begin_fill()
    turtle.seth(180)
    turtle.fd(10)
    turtle.seth(50)
    turtle.fd(15)
    turtle.seth(0)
    turtle.fd(10)
    turtle.seth(-80)
    turtle.fd(10)
    turtle.seth(-130)
    turtle.fd(15)
    turtle.seth(100)
    turtle.fd(10)
    turtle.end_fill()
    

     三、将两者组合起来

    import turtle
    turtle.color('red', 'pink')
    turtle.pensize(2)
    turtle.pendown()
    turtle.seth(150)
    turtle.begin_fill()
    turtle.fd(40)
    turtle.circle(40 * -3.745, 45)
    turtle.circle(40 * -1.431, 165)
    turtle.left(120)
    turtle.circle(40 * -1.431, 165)
    turtle.circle(40 * -3.745, 45)
    turtle.fd(40)
    turtle.end_fill()
    
    turtle.pensize(5)
    turtle.pencolor("black")
    turtle.seth(100)
    turtle.penup()
    turtle.fd(90)
    turtle.pendown()
    turtle.seth(75)
    turtle.fd(20)
    turtle.seth(-155)
    turtle.fd(20)
    turtle.seth(25)
    turtle.penup()
    turtle.fd(20)
    turtle.pendown()
    turtle.seth(-130)
    turtle.fd(120)
    turtle.fillcolor("black")
    turtle.begin_fill()
    turtle.seth(180)
    turtle.fd(10)
    turtle.seth(50)
    turtle.fd(15)
    turtle.seth(0)
    turtle.fd(10)
    turtle.seth(-80)
    turtle.fd(10)
    turtle.seth(-130)
    turtle.fd(15)
    turtle.seth(100)
    turtle.fd(10)
    turtle.end_fill()
    

      

    效果如图

    掌握了turtle库之后,我们可以根据自己的想法,画出更复杂,更漂亮的图画。

  • 相关阅读:
    Python any()
    从 SQL Server 到 MySQL (一):异构数据库迁移
    sql server作业实现数据同步
    分布式异构系统的数据一致性架构实现
    实战:sqlserver 数据实时同步到mysql
    基于MySQL的高可用准实时的数据同步方案
    SQL Server数据同步的研究(单向/双向)
    YY 数据库平台化建设实践
    两台SqlServer数据同步解决方案
    热迁移、异构数据库迁移、传输性能 这些上云的难题阿里云都帮你解决了
  • 原文地址:https://www.cnblogs.com/deng11/p/12457964.html
Copyright © 2011-2022 走看看