zoukankan      html  css  js  c++  java
  • 双十一,就用turtle画个单身狗送给自己

    今年的双十一到了

    但还有谁记得双十一是

    单身狗的节日

    单身狗的我是时候站出来

    捍卫自己的权益了

    单身是一种怎样的状态? 我们所有人都单身过,但也许只有很少的人真正体验过。

    短视频内容完全是假的,全程是一个人的操作,你必须拥有一台好的手机、一个好的文案想法。

    Turtle

    Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一只小乌龟,在一个横轴为x、纵轴为y的坐标系内,从原点(0,0)位置开始,它根据一组函数指令,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。

    Turtle函数

    操纵海龟绘图有着许多的函数,这些函数可以划分为3种:一种为画笔控制函数,一种为运动控制函数,还有一种是方向控制函数。

    画笔控制函数

    函数名作用
    turtle.penup() 抬起画笔,不绘画
    turtle.pendown() 落下画笔,开始绘画,前两者成对出现
    turtle.pencolor() 绘画颜色
    turtle.pensize() 画笔粗细

    运动控制函数

    函数名作用
    turtle.forward(d) 向前行进,走直线,d可以为负值
    turtle.circle(r,extent=None) 以r为半径绘制extent角度的弧形,extent可缺省,默认绘制整圆。r为正,即在前进方向的左侧绘制,为负,即在右侧绘制。

    方向控制函数

    函数名作用
    turtle.setheading(angle) 改变行进方向,但不行进,为绝对角度
    turtle.left(angel) 海龟向左转,angel在海龟当前行进方向上旋转的角度
    turtle.right(angel) 海龟向右转,angel在海龟当前行进方向上旋转的角度

    绘画单身狗

    import turtle as t
    t.screensize(500, 500)
    # 【头部轮廓】
    t.pensize(5)
    t.home()
    t.seth(0)
    t.pd()  #pendown
    t.color('black')
    t.circle(20, 80)  # 0
    t.circle(200, 30)  # 1
    t.circle(30, 60)  # 2
    t.circle(200, 29.5)  # 3
    t.color('black')
    t.circle(20, 60)  # 4
    t.circle(-150, 22)  # 5
    t.circle(-50, 10)  # 6
    t.circle(50, 70)  # 7
    # 确定鼻头大概位置 t.xcor和t.ycor乌龟一开始的位置
    x_nose = t.xcor()
    y_nose = t.ycor()
    t.circle(30, 62)  # 8
    t.circle(200, 15)  # 9
    # 【鼻子】
    t.pu() #penup
    t.goto(x_nose, y_nose + 25)
    t.seth(90)
    t.pd()
    t.begin_fill()
    t.circle(8)
    t.end_fill()
    # 【眼睛】
    t.pu()
    t.goto(x_nose + 48, y_nose + 55)
    t.seth(90)
    t.pd()
    t.begin_fill()
    t.circle(8)
    t.end_fill()
    # 【耳朵】
    t.pu()
    t.color('#444444')
    t.goto(x_nose + 100, y_nose + 110)
    t.seth(182)
    t.pd()
    t.circle(15, 45) 
    t.color('black')
    t.circle(10, 15)  
    t.circle(90, 70)  
    t.circle(25, 110)  
    t.rt(4)
    t.circle(90, 70)  
    t.circle(10, 15)  
    t.color('#444444')
    t.circle(15, 45) 
    # 【身体】
    t.pu()
    t.color('black')
    t.goto(x_nose + 90, y_nose - 30)
    t.seth(-130)
    t.pd()
    t.circle(250, 28)  
    t.circle(10, 140)  
    t.circle(-250, 25)  
    t.circle(-200, 25)  
    t.circle(-50, 85)  
    t.circle(8, 145)  
    t.circle(90, 45)
    t.circle(550, 5)  
    # 【尾巴】
    t.seth(0)
    t.circle(60, 85) 
    t.circle(40, 65) 
    t.circle(40, 60)  
    t.lt(150)  #left
    t.circle(-40, 90)  
    t.circle(-25, 100)  
    t.lt(5)
    t.fd(20)
    t.circle(10, 60)  
    # 【背部】
    t.rt(80)  #right
    t.circle(200, 35)
    # 【项圈】
    t.pensize(20)
    t.color('#F03C3F')
    t.lt(10)
    t.circle(-200, 25)  
    # 【爱心铃铛】
    t.pu()
    t.fd(18)
    t.lt(90)
    t.fd(18)
    t.pensize(6)
    t.seth(35)  #setheading
    t.color('#FDAF17')
    t.begin_fill()
    t.lt(135)
    t.fd(6)
    t.right(180)  # 画笔掉头
    t.circle(6, -180)
    t.backward(8)
    t.right(90)
    t.forward(6)
    t.circle(-6, 180)
    t.fd(15)
    t.end_fill()
    # 【前小腿】
    t.pensize(5)
    t.pu()
    t.color('black')
    t.goto(x_nose + 100, y_nose - 125)
    t.pd()
    t.seth(-50)
    t.fd(25)
    t.circle(10, 150)
    t.fd(25)
    # 【后小腿】
    t.pensize(4)
    t.pu()
    t.goto(x_nose + 314, y_nose - 125)
    t.pd()
    t.seth(-95)
    t.fd(25)
    t.circle(-5, 150)
    t.fd(2)
    t.hideturtle()
    t.done()

    得到的结果如下:

    本文已收录 GitHub,传送门~ ,里面更有大厂面试完整考点,欢迎 Star。

  • 相关阅读:
    WINFORM中的COMBOX模糊查询
    C#的XML序列化及反序列化
    C#调用webservice简单实例
    ORACLE简单触发器
    关于搭建webservice以及无法通过URL访问的简易解决办法
    URL类型入参串调用接口
    起点
    dom的操作
    固定定位
    字体、文本属性和背景图定位
  • 原文地址:https://www.cnblogs.com/lyck/p/13958961.html
Copyright © 2011-2022 走看看