zoukankan      html  css  js  c++  java
  • 艺术和代码的结合 turtle + python 的结合

    1.环境

    pip install turtal

    如果安装失败:

    1.1 wget turtal的下载地址,自行解压, 按照提示更改, 更改完成--> pip install -e "你的下载turtle路径"。

    2. 当导包turtal时,报错如下

      File "/usr/lib/python3.6/turtle.py", line 107, in <module>

        import tkinter as TK

    ModuleNotFoundError: No module named 'tkinter'

    解决方案:

          sudo apt-get update

          sudo apt-get install tcl-dev tk-dev python3-tk

    参考案例--(资源收集于网络)

    3.1 花

    import turtle

    # 设置初始位置

    turtle.penup()

    turtle.left(90)

    turtle.fd(200)

    turtle.pendown()

    turtle.right(90)

    # 花蕊

    turtle.fillcolor("red")

    turtle.begin_fill()

    turtle.circle(10, 180)

    turtle.circle(25, 110)

    turtle.left(50)

    turtle.circle(60, 45)

    turtle.circle(20, 170)

    turtle.right(24)

    turtle.fd(30)

    turtle.left(10)

    turtle.circle(30, 110)

    turtle.fd(20)

    turtle.left(40)

    turtle.circle(90, 70)

    turtle.circle(30, 150)

    turtle.right(30)

    turtle.fd(15)

    turtle.circle(80, 90)

    turtle.left(15)

    turtle.fd(45)

    turtle.right(165)

    turtle.fd(20)

    turtle.left(155)

    turtle.circle(150, 80)

    turtle.left(50)

    turtle.circle(150, 90)

    turtle.end_fill()

    # 花瓣1

    turtle.left(150)

    turtle.circle(-90, 70)

    turtle.left(20)

    turtle.circle(75, 105)

    turtle.setheading(60)

    turtle.circle(80, 98)

    turtle.circle(-90, 40)

    # 花瓣2

    turtle.left(180)

    turtle.circle(90, 40)

    turtle.circle(-80, 98)

    turtle.setheading(-83)

    # 叶子1

    turtle.fd(30)

    turtle.left(90)

    turtle.fd(25)

    turtle.left(45)

    turtle.fillcolor("green")

    turtle.begin_fill()

    turtle.circle(-80, 90)

    turtle.right(90)

    turtle.circle(-80, 90)

    turtle.end_fill()

    turtle.right(135)

    turtle.fd(60)

    turtle.left(180)

    turtle.fd(85)

    turtle.left(90)

    turtle.fd(80)

    # 叶子2

    turtle.right(90)

    turtle.right(45)

    turtle.fillcolor("green")

    turtle.begin_fill()

    turtle.circle(80, 90)

    turtle.left(90)

    turtle.circle(80, 90)

    turtle.end_fill()

    turtle.left(135)

    turtle.fd(60)

    turtle.left(180)

    turtle.fd(60)

    turtle.right(90)

    turtle.circle(200, 60)

    3.2 机器猫

    import turtle

    def flyTo(x, y):

        turtle.penup()

        turtle.goto(x, y)

        turtle.pendown()

    def drawEye():

        turtle.tracer(False)

        a = 2.5

        for i in range(120):

            if 0 <= i < 30 or 60 <= i < 90:

                a -= 0.05

            else:

                a += 0.05

            turtle.left(3)

            turtle.fd(a)

        turtle.tracer(True)

    def beard():

        """ 画胡子, 一共六根

        """

        # 左边第一根胡子

        flyTo(-37, 135)

        turtle.seth(165)

        turtle.fd(60)

        # 左边第二根胡子

        flyTo(-37, 125)

        turtle.seth(180)

        turtle.fd(60)

        # 左边第三根胡子

        flyTo(-37, 115)

        turtle.seth(193)

        turtle.fd(60)

        # 右边第一根胡子

        flyTo(37, 135)

        turtle.seth(15)

        turtle.fd(60)

        # 右边第二根胡子

        flyTo(37, 125)

        turtle.seth(0)

        turtle.fd(60)

        # 右边第三根胡子

        flyTo(37, 115)

        turtle.seth(-13)

        turtle.fd(60)

    def drawRedScarf():

        """ 画围巾

        """

        turtle.fillcolor("red")  # 填充颜色

        turtle.begin_fill()

        turtle.seth(0)  # 朝向右

        turtle.fd(200)  # 前进10个单位

        turtle.circle(-5, 90)

        turtle.fd(10)

        turtle.circle(-5, 90)

        turtle.fd(207)

        turtle.circle(-5, 90)

        turtle.fd(10)

        turtle.circle(-5, 90)

        turtle.end_fill()

    def drawMouse():

        flyTo(5, 148)

        turtle.seth(270)

        turtle.fd(100)

        turtle.seth(0)

        turtle.circle(120, 50)

        turtle.seth(230)

        turtle.circle(-120, 100)

    def drawRedNose():

        flyTo(-10, 158)

        turtle.fillcolor("red")  # 填充颜色

        turtle.begin_fill()

        turtle.circle(20)

        turtle.end_fill()

    def drawBlackdrawEye():

        turtle.seth(0)

        flyTo(-20, 195)

        turtle.fillcolor("#000000")  # 填充颜色

        turtle.begin_fill()

        turtle.circle(13)

        turtle.end_fill()

        turtle.pensize(6)

        flyTo(20, 205)

        turtle.seth(75)

        turtle.circle(-10, 150)

        turtle.pensize(3)

        flyTo(-17, 200)

        turtle.seth(0)

        turtle.fillcolor("ojsqRwEHgLylcUEo#ffffff")

        turtle.begin_fill()

        turtle.circle(5)

        turtle.end_fill()

        flyTo(0, 0)

    def drawFace():

        """

        """

        turtle.forward(183)  # 前行183个单位

        turtle.fillcolor("white")  # 填充颜色为白色

        turtle.begin_fill()  # 开始填充

        turtle.left(45)  # 左转45度

        turtle.circle(120, 100)  # 右边那半边脸

        turtle.seth(90)  # 朝向向上

        drawEye()  # 画右眼睛

        turtle.seth(180)  # 朝向左

        turtle.penup()  # 抬笔

        turtle.fd(60)  # 前行60

        turtle.pendown()  # 落笔

        turtle.seth(90)  # 朝向上

        drawEye()  # 画左眼睛

        turtle.penup()  # 抬笔

        turtle.seth(180)  # 朝向左

        turtle.fd(64)  # 前进64

        turtle.pendown()  # 落笔

        turtle.seth(215)  # 修改朝向

        turtle.circle(120, 100)  # 左边那半边脸

        turtle.end_fill()  #

    def drawHead():

        """ 画了一个被切掉下半部分的圆

        """

        turtle.penup()  # 抬笔

        turtle.circle(150, 40)  # 画圆, 半径150,圆周角40

        turtle.pendown()  # 落笔

        turtle.fillcolor("#00a0de")  # 填充色

        turtle.begin_fill()  # 开始填充

        turtle.circle(150, 280)  # 画圆,半径150, 圆周角280

        turtle.end_fill()

    def drawAll():

        drawHead()

        drawRedScarf()

        drawFace()

        drawRedNose()

        drawMouse()

        beard()

        flyTo(0, 0)

        turtle.seth(0)

        turtle.penup()

        turtle.circle(150, 50)

        turtle.pendown()

        turtle.seth(30)

        turtle.fd(40)

        turtle.seth(70)

        turtle.circle(-30, 270)

        turtle.fillcolor("#00a0de")

        turtle.begin_fill()

        turtle.seth(230)

        turtle.fd(80)

        turtle.seth(90)

        turtle.circle(1000, 1)

        turtle.seth(-89)

        turtle.circle(-1000, 10)

        turtle.seth(180)

        turtle.fd(70)

        turtle.seth(90)

        turtle.circle(30, 180)

        turtle.seth(180)

        turtle.fd(70)

        turtle.seth(100)

        turtle.circle(-1000, 9)

        turtle.seth(-86)

        turtle.circle(1000, 2)

        turtle.seth(230)

        turtle.fd(40)

        turtle.circle(-CqesHsLTwSjsEo30, 230)

        turtle.seth(45)

        turtle.fd(81)

        turtle.seth(0)

        turtle.fd(203)

        turtle.circle(5, 90)

        turtle.fd(10)

        turtle.circle(5, 90)

        turtle.fd(7)

        turtle.seth(40)

        turtle.circle(150, 10)

        turtle.seth(30)

        turtle.fd(40)

        turtle.end_fill()

        # 左手

        turtle.seth(70)

        turtle.fillcolor("#FFFFFF")

        turtle.begin_fill()

        turtle.circle(-30)

        turtle.end_fill()

        # 脚

        flyTo(103.74, -182.59)

        turtle.seth(0)

        turtle.fillcolor("#FFFFFF")

        turtle.begin_fill()

        turtle.fd(15)

        turtle.circle(-15, 180)

        turtle.fd(90)

        turtle.circle(-15, 180)

        turtle.fd(10)

        turtle.end_fill()

        flyTo(-96.26, -182.59)

        turtle.seth(180)

        turtle.fillcolor("#FFFFFF")

        turtle.begin_fill()

        turtle.fd(15)

        turtle.circle(15, 180)

        turtle.fd(90)

        turtle.circle(15, 180)

        turtle.fd(10)

        turtle.end_fill()

        # 右手

        flyTo(-133.97, -91.81)

        turtle.seth(50)

        turtle.fillcolor("#FFFFFF")

        turtle.begin_fill()

        turtle.circle(30)

        turtle.end_fill()

        # 口袋

        flyTo(-103.42, 15.09)

        turtle.seth(0)

        turtle.fd(38)

        turtle.seth(230)

        turtle.begin_fill()

        turtle.circle(90, 260)

        turtle.end_fill()

        flyTo(5, -40)

        turtle.seth(0)

        turtle.fd(70)

        turtle.seth(-90)

        turtle.circle(-70, 180)

        turtle.seth(0)

        turtle.fd(70)

        # 铃铛

        flyTo(-103.42, 15.09)

        turtle.fd(90)

        turtle.seth(70)

        turtle.fillcolor("#ffd200")

        turtle.begin_fill()

        turtle.circle(-20)

        turtle.end_fill()

        turtle.seth(170)

        turtle.fillcolor("#ffd200")

        turtle.begin_fill()

        turtle.circle(-2, 180)

        turtle.seth(10)

        turtle.circle(-100, 22)

        turtle.circle(-2, 180)

        turtle.seth(180 - 10)

        turtle.circle(100, 22)

        turtle.end_fill()

        flyTo(-13.42, 15.09)

        turtle.seth(250)

        turtle.circle(20, 110)

        turtle.seth(90)

        turtle.fd(15)

        turtle.dot(10)

        flyTo(0, -150)

        drawBlackdrawEye()

    def main():

        turtle.screensize(800, 6000, "#F0F0F0")

        turtle.pensize(3)

        turtle.speed(9)

        drawAll()

    if __name__ == "__main__":

        main()

        turtle.mainloop()

    3.2 小猪佩奇

    import turtle as t

    t.pensize(4)

    t.hideturtle()

    t.colormode(255)

    t.color((255,155,192),"pink")

    t.setup(840,500)

    t.speed(10)

    #鼻子

    t.pu()

    t.goto(-100,100)

    t.pd()

    t.seth(-30)

    t.begin_fill()

    a=0.4

    for i in range(120):

        if 0<=i<30 or 60<=i<90:

            a=a+0.08

            t.lt(3) #向左转3度

            t.fd(a) #向前走a的步长

        else:

            a=a-0.08

            t.lt(3)

            t.fd(a)

    t.end_fill()

    t.pu()

    t.seth(90)

    t.fd(25)

    t.seth(0)

    t.fd(10)

    t.pd()

    t.pencolor(255,155,192)

    t.seth(10)

    t.begin_fill()

    t.circle(5)

    t.color(160,82,45)

    t.end_fill()

    t.pu()

    t.seth(0)

    t.fd(20)

    t.pd()

    t.pencolor(255,155,192)

    t.seth(10)

    t.begin_fill()

    t.circle(5)

    t.color(160,82,45)

    t.end_fill()

    #头

    t.color((255,155,192),"pink")

    t.pu()

    t.seth(90)

    t.fd(41)

    t.seth(0)

    t.fd(0)

    t.pd()

    t.begin_fill()

    t.seth(180)

    t.circle(300,-30)

    t.circle(100,-60)

    t.circle(80,-100)

    t.circle(150,-20)

    t.circle(60,-95)

    t.seth(161)

    t.circle(-300,15)

    t.pu()

    t.goto(-100,100)

    t.pd()

    t.seth(-30)

    a=0.4

    for i in range(60):

        if 0<=i<30 or 60<=i<90:

            a=a+0.08

            t.lt(3) #向左转3度

            t.fd(a) #向前走a的步长

        else:

            a=a-0.08

            t.lt(3)

            t.fd(a)

    t.end_fill()

    #耳朵

    t.color((255,155,192),"pink")

    t.pu()

    t.seth(90)

    t.fd(-7)

    t.seth(0)

    t.fd(70)

    t.pd()

    t.begin_fill()

    t.seth(100)

    t.circle(-50,50)

    t.circle(-10,120)

    t.circle(-50,54)

    t.end_fill()

    t.pu()

    t.seth(90)

    t.fd(-12)

    t.seth(0)

    t.fd(30)

    t.pd()

    t.begin_fill()

    t.seth(100)

    t.circle(-50,50)

    t.circle(-10,120)

    t.circle(-50,56)

    t.end_fill()

    #眼睛

    t.color((255,155,192),"white")

    t.pu()

    t.seth(90)

    t.fd(-20)

    t.seth(0)

    t.fd(-95)

    t.pd()

    t.begin_fill()

    t.circle(15)

    t.end_fill()

    t.color("black")

    t.pu()

    t.seth(90)

    t.fd(12)

    t.seth(0)

    t.fd(-3)

    t.pd()

    t.begin_fill()

    t.circle(3)

    t.end_fill()

    t.color((255,155,192),"white")

    t.pu()

    t.seth(90)

    t.fd(-25)

    t.seth(0)

    t.fd(40)

    t.pd()

    t.begin_fill()

    t.circle(15)

    t.end_fill()

    t.color("black")

    t.pu()

    t.seth(90)

    t.fd(12)

    t.seth(0)

    t.fd(-3)

    t.pd()

    t.begin_fill()

    t.circle(3)

    t.end_fill()

    #腮

    t.color((255,155,192))

    t.pu()

    t.seth(90)

    t.fd(-95)

    t.seth(0)

    t.fd(65)

    t.pd()

    t.begin_fill()

    t.circle(30)

    t.end_fill()

    #嘴

    t.color(239,69,19)

    t.pu()

    t.seth(90)

    t.fd(15)

    t.seth(0)

    t.fd(-100)

    t.pd()

    t.seth(-80)

    t.circle(30,40)

    t.circle(40,80)

    #身体

    t.color("red",(255,99,71))

    t.pu()

    t.seth(90)

    t.fd(-20)

    t.seth(0)

    t.fd(-78)

    t.pd()

    t.begin_fill()

    t.seth(-130)

    t.circle(100,10)

    t.circle(300,30)

    t.seth(0)

    t.fd(230)

    t.seth(90)

    t.circle(300,30)

    t.circle(100,3)

    t.color((255,155,192),(255,100,100))

    t.seth(-135)

    t.circle(-80,63)

    t.circle(-150,24)

    t.end_fill()

    #手

    t.color((255,155,192))

    t.pu()

    t.seth(90)

    t.fd(-40)

    t.seth(0)

    t.fd(-27)

    t.pd()

    t.seth(-160)

    t.circle(300,15)

    t.pu()

    t.seth(90)

    t.fd(15)

    t.seth(0)

    t.fd(0)

    t.pd()

    t.seth(-10)

    t.circle(-20,90)

    t.pu()

    t.seth(90)

    t.fd(30)

    t.seth(0)

    t.fd(237)

    t.pd()

    t.seth(-20)

    t.circle(-300,15)

    t.pu()

    t.seth(90)

    t.fd(20)

    t.seth(0)

    t.fd(0)

    t.pd()

    t.seth(-170)

    t.circle(20,90)

    #脚

    t.pensize(10)

    t.color((240,128,128))

    t.pu()

    t.seth(90)

    t.fd(-75)

    t.seth(0)

    t.fd(-180)

    t.pd()

    t.seth(-90)

    t.fd(40)

    t.seth(-180)

    t.color("black")

    t.pensize(15)

    t.fd(20)

    t.pensize(10)

    t.color((240,128,128))

    t.pu()

    t.seth(90)

    t.fd(40)

    t.seth(0)

    t.fd(90)

    t.pd()

    t.seth(-90)

    t.fd(40)

    t.seth(-180)

    t.color("black")

    t.pensize(15)

    t.fd(20)

    #尾巴

    t.pensize(4)

    t.color((255,155,192))

    t.pu()

    t.seth(90)

    t.fd(70)

    t.seth(0)

    t.fd(95)

    t.pd()

    t.seth(0)

    t.circle(70,20)

    t.circle(10,330)

    t.circle(70,30)

    t.done()

  • 相关阅读:
    错误error: Exception at 0x613baa14, code: 0xc0000005: read access violation at: 0x0, flags=0x0 (first chance)的解决办法
    android项目在eclipse下编译运行的问题
    关于Eigen库在Visual Studio2013中传参对齐报错问题
    实时控制软件设计大作业总结
    实时软件控制成员任务分配进度表
    实时控制软件设计第三次作业
    实时控制软件设计第二次作业
    实时软件控制设计第一次作业
    《构建之法:现代软件工程》第一章读书笔记
    组员名单
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13309073.html
Copyright © 2011-2022 走看看