精华内容
下载资源
问答
  • python turtle 画几株草

    千次阅读 2019-10-19 18:49:52
    python turtle 画几株草 import turtle as tl import random as rd import math as mt def write(n, t): print(n) tl.pensize(mt.sqrt(n+1)/10) tl.pencolor(0.3, 0.9, 0.3) tl.right(50 / (n+1)) ...

    python turtle 画几株草

    import turtle as tl
    import random as rd
    import math as mt
    
    
    def write(n, t):
        print(n)
        tl.pensize(mt.sqrt(n+1)/10)
        tl.pencolor(0.3, 0.9, 0.3)
        tl.right(50 / (n+1))
        tl.forward(n/20)
    
        def pt(n):
            d = rd.randint(0, 1)
            if d:
                tl.left(15*n/t)
                tl.forward(10*n/t)
                tl.backward(10*n/t)
                tl.right(15*n/t)
            else:
                tl.right(15 * n / t)
                tl.forward(10 * n/t)
                tl.backward(10 * n/t)
                tl.left(15 * n / t)
    
        if n > 0:
           pt(n)
           write(n-1, t)
    
    
    def move(x, y):
        tl.penup()
        tl.goto(x,y)
        tl.pd()
    
    
    def m(n, t, Ysize, angle):
        Y = Ysize
        tl.right(50 / (n+1))
        tl.pensize(mt.sqrt(n)/5)
        tl.pencolor(0.1, 0.7, 0.1)
        tl.forward(25*n/t)
        if( n > 0 ):
            q1 = 45 * n / t
            q2 = 45 * n / t
            list = tl.position()
            x1 = list[0]
            y1 = list[1]
            angle = angle-50 / (n+1)
            tl.left(q1)
            write(Y*n, Y*n)
            move(x1, y1)
            tl.setheading(angle)
            tl.right(q2)
            write(Y*n, Y*n)
            move(x1, y1)
            tl.setheading(angle)
            #tl.right(180-45 * n / t)
            m(n-1, t, Ysize, angle)
    
    
    def _main_():
        tl.screensize(canvwidth=1000, canvheight=1000)
        tl.speed(0)
        tl.bgcolor(1, 1, 1)
        tl.left(90)
        m(15, 15, 2.5, 90)
        move(-200, 0)
        tl.setheading(90)
        m(10, 10, 2, 90)
        move(200,0)
        tl.setheading(90)
        m(20, 20, 3, 90)
        tl.hideturtle()
        tl.mainloop()
        
        
    _main_()
    

    在这里插入图片描述

    展开全文
  • 绘图之前先要安装turtle模块 python 2: pip install turtle python 3: pip3 install turtle 1.小猪佩奇: #!/usr/bin/env python2 # coding=utf-8 import turtle as t t.pensize(4) t.hideturtle() t.colormode...

    绘图之前先要安装turtle模块
    python 2:

    pip install turtle
    

    python 3:

    pip3 install turtle
    

    1.小猪佩奇:
    在这里插入图片描述

    import turtle as t
    t.pensize(4)
    t.hideturtle()
    t.colormode(255)
    t.color((255, 155, 192), "pink")
    t.setup(840, 500)
    t.speed(20)
    # 鼻子
    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.exitonclick()
    

    2.叮当猫

    import turtle as t
    # t.speed(5)
    t.pensize(8)
    t.hideturtle()
    t.screensize(500, 500, bg='white')
    # 猫脸
    t.fillcolor('#00A1E8')
    t.begin_fill()
    t.circle(120)
    t.end_fill()
    t.pensize(3)
    t.fillcolor('white')
    t.begin_fill()
    t.circle(100)
    t.end_fill()
    t.pu()
    t.home()
    t.goto(0, 134)
    t.pd()
    t.pensize(4)
    t.fillcolor("#EA0014")
    t.begin_fill()
    t.circle(18)
    t.end_fill()
    t.pu()
    t.goto(7, 155)
    t.pensize(2)
    t.color('white', 'white')
    t.pd()
    t.begin_fill()
    t.circle(4)
    t.end_fill()
    t.pu()
    t.goto(-30, 160)
    t.pensize(4)
    t.pd()
    t.color('black', 'white')
    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.goto(30, 160)
    t.pensize(4)
    t.pd()
    t.color('black', 'white')
    t.begin_fill()
    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.goto(-38, 190)
    t.pensize(8)
    t.pd()
    t.right(-30)
    t.forward(15)
    t.right(70)
    t.forward(15)
    t.pu()
    t.goto(15, 185)
    t.pensize(4)
    t.pd()
    t.color('black', 'black')
    t.begin_fill()
    t.circle(13)
    t.end_fill()
    t.pu()
    t.goto(13, 190)
    t.pensize(2)
    t.pd()
    t.color('white', 'white')
    t.begin_fill()
    t.circle(5)
    t.end_fill()
    t.pu()
    t.home()
    t.goto(0, 134)
    t.pensize(4)
    t.pencolor('black')
    t.pd()
    t.right(90)
    t.forward(40)
    t.pu()
    t.home()
    t.goto(0, 124)
    t.pensize(3)
    t.pencolor('black')
    t.pd()
    t.left(10)
    t.forward(80)
    t.pu()
    t.home()
    t.goto(0, 114)
    t.pensize(3)
    t.pencolor('black')
    t.pd()
    t.left(6)
    t.forward(80)
    t.pu()
    t.home()
    t.goto(0, 104)
    t.pensize(3)
    t.pencolor('black')
    t.pd()
    t.left(0)
    t.forward(80)
    # 左边的胡子
    t.pu()
    t.home()
    t.goto(0, 124)
    t.pensize(3)
    t.pencolor('black')
    t.pd()
    t.left(170)
    t.forward(80)
    t.pu()
    t.home()
    t.goto(0, 114)
    t.pensize(3)
    t.pencolor('black')
    t.pd()
    t.left(174)
    t.forward(80)
    t.pu()
    t.home()
    t.goto(0, 104)
    t.pensize(3)
    t.pencolor('black')
    t.pd()
    t.left(180)
    t.forward(80)
    t.pu()
    t.goto(-70, 70)
    t.pd()
    t.color('black', 'red')
    t.pensize(6)
    t.seth(-60)
    t.begin_fill()
    t.circle(80, 40)
    t.circle(80, 80)
    t.end_fill()
    t.pu()
    t.home()
    t.goto(-80, 70)
    t.pd()
    t.forward(160)
    t.pu()
    t.home()
    t.goto(-50, 50)
    t.pd()
    t.pensize(1)
    t.fillcolor("#eb6e1a")
    t.seth(40)
    t.begin_fill()
    t.circle(-40, 40)
    t.circle(-40, 40)
    t.seth(40)
    t.circle(-40, 40)
    t.circle(-40, 40)
    t.seth(220)
    t.circle(-80, 40)
    t.circle(-80, 40)
    t.end_fill()
    # 领带
    t.pu()
    t.goto(-70, 12)
    t.pensize(14)
    t.pencolor('red')
    t.pd()
    t.seth(-20)
    t.circle(200, 30)
    t.circle(200, 10)
    # 铃铛
    t.pu()
    t.goto(0, -46)
    t.pd()
    t.pensize(3)
    t.color("black", '#f8d102')
    t.begin_fill()
    t.circle(25)
    t.end_fill()
    t.pu()
    t.goto(-5, -40)
    t.pd()
    t.pensize(2)
    t.color("black", '#79675d')
    t.begin_fill()
    t.circle(5)
    t.end_fill()
    t.pensize(3)
    t.right(115)
    t.forward(7)
    t.mainloop()
    

    3.小黄人
    在这里插入图片描述

    import turtle as t
    # t = turtle.Turtle()
    wn = t.Screen()
    t.colormode(255)
    t.hideturtle()
    t.speed(0)
    t.penup()
    t.pensize(4)
    t.goto(100,0)
    t.pendown()
    t.left(90)
    t.color((0,0,0),(255,255,0))
    #身体绘制上色
    t.begin_fill()
    t.forward(200)
    t.circle(100,180)
    t.forward(200)
    t.circle(100,180)
    t.end_fill()
    #右眼睛绘制上色
    t.pensize(12)
    t.penup()
    t.goto(-100,200)
    t.pendown()
    t.right(100)
    t.circle(500,23)
    t.pensize(3)
    t.penup()
    t.goto(0,200)
    t.pendown()
    t.seth(270)
    t.color("black","white")
    t.begin_fill()
    t.circle(30)
    t.end_fill()
    t.penup()
    t.goto(15,200)
    t.pendown()
    t.color("black","black")
    t.begin_fill()
    t.circle(15)
    t.end_fill()
    t.penup()
    t.goto(35,205)
    t.color("black","white")
    t.begin_fill()
    t.circle(5)
    t.end_fill()
    #左眼睛绘制上色
    t.pensize(3)
    t.penup()
    t.goto(0,200)
    t.pendown()
    t.seth(90)
    t.color("black","white")
    t.begin_fill()
    t.circle(30)
    t.end_fill()
    t.penup()
    t.goto(-15,200)
    t.pendown()
    t.color("black","black")
    t.begin_fill()
    t.circle(15)
    t.end_fill()
    t.penup()
    t.goto(-35,205)
    t.color("black","white")
    t.begin_fill()
    t.circle(5)
    t.end_fill()
    #嘴绘制上色
    t.penup()
    t.goto(-20,100)
    t.pendown()
    t.seth(270)
    t.color("black","white")
    t.begin_fill()
    t.circle(20,180)
    t.left(90)
    t.forward(40)
    t.end_fill()
    #裤子绘制上色
    t.penup()
    t.goto(-100,0)
    t.pendown()
    t.seth(0)
    t.color("black","blue")
    t.begin_fill()
    t.forward(20)
    t.left(90)
    t.forward(40)
    t.right(90)
    t.forward(160)
    t.right(90)
    t.forward(40)
    t.left(90)
    t.forward(20)
    t.seth(270)
    t.penup()
    t.goto(-100,0)
    t.circle(100,180)
    t.end_fill()
    #左裤子腰带
    t.penup()
    t.goto(-70,20)
    t.pendown()
    t.color("black","blue")
    t.begin_fill()
    t.seth(45)
    t.forward(15)
    t.left(90)
    t.forward(60)
    t.seth(270)
    t.forward(15)
    t.left(40)
    t.forward(50)
    t.end_fill()
    t.left(180)
    t.goto(-70,30)
    t.dot()
    #右裤腰带
    t.penup()
    t.goto(70,20)
    t.pendown()
    t.color("black","blue")
    t.begin_fill()
    t.seth(135)
    t.forward(15)
    t.right(90)
    t.forward(60)
    t.seth(270)
    t.forward(15)
    t.right(40)
    t.forward(50)
    t.end_fill()
    t.left(180)
    t.goto(70,30)
    t.dot()
    #脚
    t.penup()
    t.goto(4,-100)
    t.pendown()
    t.seth(270)
    t.color("black","black")
    t.begin_fill()
    t.forward(30)
    t.left(90)
    t.forward(40)
    t.seth(20)
    t.circle(10,180)
    t.circle(400,2)
    t.seth(90)
    t.forward(20)
    t.goto(4,-100)
    t.end_fill()
    t.penup()
    t.goto(-4,-100)
    t.pendown()
    t.seth(270)
    t.color("black","black")
    t.begin_fill()
    t.forward(30)
    t.right(90)
    t.forward(40)
    t.seth(20)
    t.circle(10,-225)
    t.circle(400,-3)
    t.seth(90)
    t.forward(21)
    t.goto(-4,-100)
    t.end_fill()
    #左手
    t.penup()
    t.goto(-100,50)
    t.pendown()
    t.seth(225)
    t.color("black","yellow")
    t.begin_fill()
    t.forward(40)
    t.left(90)
    t.forward(35)
    t.seth(90)
    t.forward(50)
    t.end_fill()
    #右手
    t.penup()
    t.goto(100,50)
    t.pendown()
    t.seth(315)
    t.color("black","yellow")
    t.begin_fill()
    t.forward(40)
    t.right(90)
    t.forward(36)
    t.seth(90)
    t.forward(50)
    t.end_fill()
    #
    t.penup()
    t.goto(0,-100)
    t.pendown()
    t.forward(30)
    #
    t.penup()
    t.goto(0,-20)
    t.pendown()
    t.color("yellow")
    t.begin_fill()
    t.seth(45)
    t.forward(20)
    t.circle(10,180)
    t.right(90)
    t.circle(10,180)
    t.forward(20)
    t.end_fill()
    #
    t.penup()
    t.color("black")
    t.goto(-100,-20)
    t.pendown()
    t.circle(30,90)
    t.penup()
    t.goto(100,-20)
    t.pendown()
    t.circle(30,-90)
    #头顶
    t.penup()
    t.goto(2,300)
    t.pendown()
    t.begin_fill()
    t.seth(135)
    t.circle(100,40)
    t.end_fill()
    t.penup()
    t.goto(2,300)
    t.pendown()
    t.begin_fill()
    t.seth(45)
    t.circle(100,40)
    t.exitonclick()
    

    4.樱花树
    在这里插入图片描述

    from turtle import *
    from random import *
    from math import *
    class Tree:
        def __init__(self):
            setup(1000, 700)
            bgcolor(1, 1, 1)  # 背景色
            # ht()  # 隐藏turtle
            speed(10)  # 速度 1-10渐进,0 最快
            # tracer(1, 100)    # 设置绘图屏幕刷新频率,参数1设置在正常刷新频次的第参数1次刷新,参数2设置每次刷新的时延
            tracer(0, 0)
            pu()  # 抬笔
            backward(100)
            # 保证笔触箭头方向始终不向下,此处使其左转90度,而不是右转
            left(90)  # 左转90度
            backward(300)  # 后退300
        def tree(self, n, l):
            pd()  # 下笔
            # 阴影效果
            t = cos(radians(heading() + 45)) / 8 + 0.25
            pencolor(t, t, t)
            pensize(n / 1.2)
            forward(l)  # 画树枝
            if n > 0:
                b = random() * 15 + 10  # 右分支偏转角度
                c = random() * 15 + 10  # 左分支偏转角度
                d = l * (random() * 0.25 + 0.7)  # 下一个分支的长度
                # 右转一定角度,画右分支
                right(b)
                self.tree(n - 1, d)
                # 左转一定角度,画左分支
                left(b + c)
                self.tree(n - 1, d)
                # 转回来
                right(c)
            else:
                # 画叶子
                right(90)
                n = cos(radians(heading() - 45)) / 4 + 0.5
                pencolor(n, n * 0.8, n * 0.8)
                fillcolor(n, n * 0.8, n * 0.8)
                begin_fill()
                circle(3)
                left(90)
                end_fill()
                # 添加0.3倍的飘落叶子
                if random() > 0.7:
                    pu()
                    # 飘落
                    t = heading()
                    an = -40 + random() * 40
                    setheading(an)
                    dis = int(800 * random() * 0.5 + 400 * random() * 0.3 + 200 * random() * 0.2)
                    forward(dis)
                    setheading(t)
                    # 画叶子
                    pd()
                    right(90)
                    n = cos(radians(heading() - 45)) / 4 + 0.5
                    pencolor(n * 0.5 + 0.5, 0.4 + n * 0.4, 0.4 + n * 0.4)
                    fillcolor(n, n * 0.8, n * 0.8)
                    begin_fill()
                    circle(2)
                    left(90)
                    end_fill()
                    pu()
                    # 返回
                    t = heading()
                    setheading(an)
                    backward(dis)
                    setheading(t)
                    # pass
            pu()
            backward(l)  # 退回
    def main():
        tree = Tree()
        tree.tree(12, 100)  # 递归7层
        done()
    if __name__ == '__main__':
        main()
    

    在这里插入图片描述

    #!/usr/bin/env python
    # coding=utf-8
    
    import turtle
    import random
    from turtle import *
    from time import sleep
    # 画樱花的躯干(60,t)
    def tree(branchLen, t):
        sleep(0.0005)
        if branchLen > 3:
            if 8 <= branchLen <= 12:
                if random.randint(0, 2) == 0:
                    t.color('snow')  # 白
                else:
                    t.color('lightcoral')  # 淡珊瑚色
                t.pensize(branchLen / 3)
            elif branchLen < 8:
                if random.randint(0, 1) == 0:
                    t.color('snow')
                else:
                    t.color('lightcoral')  # 淡珊瑚色
                t.pensize(branchLen / 2)
            else:
                t.color('sienna')  # 赭(zhě)色
                t.pensize(branchLen / 10)  # 6
            t.forward(branchLen)
            a = 1.5 * random.random()
            t.right(20 * a)
            b = 1.5 * random.random()
            tree(branchLen - 10 * b, t)
            t.left(40 * a)
            tree(branchLen - 10 * b, t)
            t.right(20 * a)
            t.up()
            t.backward(branchLen)
            t.down()
    # 掉落的花瓣
    def petal(m, t):
        for i in range(m):
            a = 200 - 400 * random.random()
            b = 10 - 20 * random.random()
            t.up()
            t.forward(b)
            t.left(90)
            t.forward(a)
            t.down()
            t.color('lightcoral')  # 淡珊瑚色
            t.circle(1)
            t.up()
            t.backward(a)
            t.right(90)
            t.backward(b)
    def main():
        # 绘图区域
        t = turtle.Turtle()
        # 画布大小
        w = turtle.Screen()
        t.hideturtle()  # 隐藏画笔
        t.getscreen().tracer(5, 0)
        w.screensize(bg='wheat')  # wheat小麦
        t.left(90)
        t.up()
        t.backward(150)
        t.down()
        t.color('sienna')
        # 画樱花的躯干
        tree(60, t)
        # 掉落的花瓣
        petal(200, t)
        w.exitonclick()
    main()
    

    在这里插入图片描述

    from turtle import *
    from random import *
    from math import *
    def tree(n, l):
        pd()  # 下笔
        # 阴影效果
        t = cos(radians(heading() + 45)) / 8 + 0.25
        pencolor(t, t, t)
        pensize(n / 4)
        forward(l)  # 画树枝
        if n > 0:
            b = random() * 15 + 10  # 右分支偏转角度
            c = random() * 15 + 10  # 左分支偏转角度
            d = l * (random() * 0.35 + 0.6)  # 下一个分支的长度
            # 右转一定角度,画右分支
            right(b)
            tree(n - 1, d)
            # 左转一定角度,画左分支
            left(b + c)
            tree(n - 1, d)
            # 转回来
            right(c)
        else:
            # 画叶子
            right(90)
            n = cos(radians(heading() - 45)) / 4 + 0.5
            pencolor(n, n, n)
            circle(2)
            left(90)
        pu()
        backward(l)  # 退回
    bgcolor(0.5, 0.5, 0.5)  # 背景色
    ht()  # 隐藏turtle
    speed(0)  # 速度,1-10渐进,0最快
    tracer(0, 0)
    left(90)  # 左转90度
    pu()  # 抬笔
    backward(300)  # 后退300
    tree(13, 100)  # 递归7层
    done()
    

    在这里插入图片描述

    from random import *
    from math import *
    def tree(n, l):
        setup(1000, 800)
        pd()  # 下笔
        # 阴影效果
        t = cos(radians(heading() + 45)) / 8 + 0.25
        pencolor(t, t, t)
        pensize(n / 3)
        forward(l)  # 画树枝
        if n > 0:
            b = random() * 15 + 10  # 右分支偏转角度
            c = random() * 15 + 10  # 左分支偏转角度
            d = l * (random() * 0.25 + 0.7)  # 下一个分支的长度
            # 右转一定角度,画右分支
            right(b)
            tree(n - 1, d)
            # 左转一定角度,画左分支
            left(b + c)
            tree(n - 1, d)
            # 转回来
            right(c)
        else:
            # 画叶子
            right(90)
            n = cos(radians(heading() - 45)) / 4 + 0.5
            pencolor(n, n * 0.8, n * 0.8)
            circle(3)
            left(90)
            # 添加0.3倍的飘落叶子
            if (random() > 0.7):
                pu()
                # 飘落
                t = heading()
                an = -40 + random() * 40
                setheading(an)
                dis = int(800 * random() * 0.5 + 400 * random() * 0.3 + 200 * random() * 0.2)
                forward(dis)
                setheading(t)
                # 画叶子
                pd()
                right(90)
                n = cos(radians(heading() - 45)) / 4 + 0.5
                pencolor(n * 0.5 + 0.5, 0.4 + n * 0.4, 0.4 + n * 0.4)
                circle(2)
                left(90)
                pu()
                # 返回
                t = heading()
                setheading(an)
                backward(dis)
                setheading(t)
        pu()
        backward(l)  # 退回
    bgcolor(0.5, 0.5, 0.5)  # 背景色
    ht()  # 隐藏turtle
    speed(0)  # 速度,1-10渐进,0最快
    tracer(0, 0)
    pu()  # 抬笔
    backward(100)
    left(90)  # 左转90度
    pu()  # 抬笔
    backward(300)  # 后退300
    tree(12, 100)  # 递归7层
    done()
    

    5.皮卡丘
    在这里插入图片描述

    # coding:utf-8
    import turtle as t
    import time
    # 皮卡丘
    # 基础设置
    t.screensize(800, 600)
    t.pensize(2)  # 设置画笔的大小
    t.speed(10)  # 设置画笔速度为10
    # 画左偏曲线函数
    def radian_left(ang, dis, step, n):
        for i in range(n):
            dis += step  # dis增大step
            t.lt(ang)  # 向左转ang度
            t.fd(dis)  # 向前走dis的步长
    def radian_right(ang, dis, step, n):
        for i in range(n):
            dis += step
            t.rt(ang)  # 向左转ang度
            t.fd(dis)  # 向前走dis的步长
    # 画耳朵
    def InitEars():
        t.color("black", "yellow")
        # 左耳朵曲线
        t.pu()  # 提笔
        t.goto(-50, 100)  # 笔头初始位置
        t.pd()  # 下笔
        t.setheading(110)  # 画笔角度
        t.begin_fill()
        radian_left(1.2, 0.4, 0.1, 40)
        t.setheading(270)  # 画笔角度
        radian_left(1.2, 0.4, 0.1, 40)
        t.setheading(44)  # 画笔角度
        t.forward(32)
        t.end_fill()
        # 右耳朵曲线
        t.pu()  # 提笔
        t.goto(50, 100)  # 笔头初始位置
        t.pd()  # 下笔
        t.setheading(70)  # 画笔角度
        t.begin_fill()
        radian_right(1.2, 0.4, 0.1, 40)
        t.setheading(270)  # 画笔角度
        radian_right(1.2, 0.4, 0.1, 40)
        t.setheading(136)  # 画笔角度
        t.forward(32)
        t.end_fill()
        # 耳朵黑
        t.begin_fill()
        t.fillcolor("black")
        t.pu()  # 提笔
        t.goto(88, 141)  # 笔头初始位置
        t.pd()  # 下笔
        t.setheading(35)  # 画笔角度
        radian_right(1.2, 1.6, 0.1, 16)
        t.setheading(270)  # 画笔角度
        radian_right(1.2, 0.4, 0.1, 25)
        t.setheading(132)  # 画笔角度
        t.forward(31)
        t.end_fill()
        t.begin_fill()
        t.fillcolor("black")
        t.pu()  # 提笔
        t.goto(-88, 141)  # 笔头初始位置
        t.pd()  # 下笔
        t.setheading(145)  # 画笔角度
        radian_left(1.2, 1.6, 0.1, 16)
        t.setheading(270)  # 画笔角度
        radian_left(1.2, 0.4, 0.1, 25)
        t.setheading(48)  # 画笔角度
        t.forward(31)
        t.end_fill()
    # 画尾巴
    def InitTail():
        # 尾巴
        t.begin_fill()
        t.fillcolor("yellow")
        t.pu()  # 提笔
        t.goto(64, -140)  # 笔头初始位置
        t.pd()  # 下笔
        t.setheading(10)  # 画笔角度
        t.forward(20)
        t.setheading(90)  # 画笔角度
        t.forward(20)
        t.setheading(10)  # 画笔角度
        t.forward(10)
        t.setheading(80)  # 画笔角度
        t.forward(100)
        t.setheading(35)  # 画笔角度
        t.forward(80)
        t.setheading(260)  # 画笔角度
        t.forward(100)
        t.setheading(205)  # 画笔角度
        t.forward(40)
        t.setheading(260)  # 画笔角度
        t.forward(37)
        t.setheading(205)  # 画笔角度
        t.forward(20)
        t.setheading(260)  # 画笔角度
        t.forward(25)
        t.setheading(175)  # 画笔角度
        t.forward(30)
        t.setheading(100)  # 画笔角度
        t.forward(13)
        t.end_fill()
    # 画脚
    def InitFoots():
        # 脚
        t.begin_fill()
        t.fillcolor("yellow")
        t.pensize(2)
        t.pu()  # 提笔
        t.goto(-70, -200)  # 笔头初始位置
        t.pd()  # 下笔
        t.setheading(225)  # 画笔角度
        radian_left(0.5, 1.2, 0, 12)
        radian_left(35, 0.6, 0, 4)
        radian_left(1, 1.2, 0, 18)
        t.setheading(160)  # 画笔角度
        t.forward(13)
        t.end_fill()
        t.begin_fill()
        t.fillcolor("yellow")
        t.pensize(2)
        t.pu()  # 提笔
        t.goto(70, -200)  # 笔头初始位置
        t.pd()  # 下笔
        t.setheading(315)  # 画笔角度
        radian_right(0.5, 1.2, 0, 12)
        radian_right(35, 0.6, 0, 4)
        radian_right(1, 1.2, 0, 18)
        t.setheading(20)  # 画笔角度
        t.forward(13)
        t.end_fill()
    # 画身体
    def InitBody():
        # 外形轮廓
        t.begin_fill()
        t.pu()  # 提笔
        t.goto(112, 0)  # 笔头初始位置
        t.pd()  # 下笔
        t.setheading(90)  # 画笔角度
        t.circle(112, 180)
        t.setheading(250)  # 画笔角度
        radian_left(1.6, 1.3, 0, 50)
        radian_left(0.8, 1.5, 0, 25)
        t.setheading(255)  # 画笔角度
        radian_left(0.4, 1.6, 0.2, 27)
        radian_left(2.8, 1, 0, 45)
        radian_right(0.9, 1.4, 0, 31)
        t.setheading(355)  # 画笔角度
        radian_right(0.9, 1.4, 0, 31)
        radian_left(2.8, 1, 0, 45)
        radian_left(0.4, 7.2, -0.2, 27)
        t.setheading(10)  # 画笔角度
        radian_left(0.8, 1.5, 0, 25)
        radian_left(1.6, 1.3, 0, 50)
        t.end_fill()
    def InitEyes():
        # 左眼睛
        t.begin_fill()
        t.fillcolor("black")
        t.pu()  # 提笔
        t.goto(-46, 10)  # 笔头初始位置
        t.pd()  # 下笔
        t.setheading(90)  # 画笔角度
        t.circle(5, 360)
        t.end_fill()
        # 右眼睛
        t.begin_fill()
        t.fillcolor("black")
        t.pu()  # 提笔
        t.goto(46, 10)  # 笔头初始位置
        t.pd()  # 下笔
        t.setheading(-90)  # 画笔角度
        t.circle(5, 360)
        t.end_fill()
    # 画脸
    def InitFace():
        # 脸蛋
        t.begin_fill()
        t.fillcolor("red")
        t.pu()  # 提笔
        t.goto(-63, -10)  # 笔头初始位置
        t.pd()  # 下笔
        t.setheading(90)  # 画笔角度
        t.circle(10, 360)
        t.end_fill()
        t.begin_fill()
        t.fillcolor("red")
        t.pu()  # 提笔
        t.goto(63, -10)  # 笔头初始位置
        t.pd()  # 下笔
        t.setheading(-90)  # 画笔角度
        t.circle(10, 360)
        t.end_fill()
        # 嘴巴
        t.pensize(2.2)
        t.pu()  # 提笔
        t.goto(0, 0)  # 笔头初始位置
        t.pd()  # 下笔
        t.setheading(235)  # 画笔角度
        radian_right(5, 0.8, 0, 30)
        t.pu()  # 提笔
        t.goto(0, 0)  # 笔头初始位置
        t.pd()  # 下笔
        t.setheading(305)  # 画笔角度
        radian_left(5, 0.8, 0, 30)
    # 画手
    def InitHands():
        # 左手
        t.pensize(2)
        t.pu()  # 提笔
        t.goto(-46, -100)  # 笔头初始位置
        t.pd()  # 下笔
        t.setheading(285)  # 画笔角度
        radian_right(0.4, 1.2, 0, 26)
        radian_right(5, 0.35, 0, 26)
        radian_right(0.3, 1.2, 0, 15)
        # 右手
        t.pu()  # 提笔
        t.goto(46, -100)  # 笔头初始位置
        t.pd()  # 下笔
        t.setheading(255)  # 画笔角度
        radian_left(0.4, 1.2, 0, 26)
        radian_left(5, 0.35, 0, 26)
        radian_left(0.3, 1.2, 0, 15)
    def CloseEyes():
        # 左眼睛
        t.pu()  # 提笔
        t.goto(-46, 12)  # 笔头初始位置
        t.pd()  # 下笔
        t.setheading(180)  # 画笔角度
        t.forward(10)
        # 右眼睛
        t.pu()  # 提笔
        t.goto(46, 12)  # 笔头初始位置
        t.pd()  # 下笔
        t.setheading(0)  # 画笔角度
        t.forward(10)
    # 初始化
    def Init():
        InitEars()
        InitTail()
        InitFoots()
        InitBody()
        InitFace()
        InitHands()
        InitEyes()
    # 眨眼睛
    def Upgarde():
        InitEars()
        InitTail()
        InitFoots()
        InitBody()
        InitFace()
        InitHands()
        CloseEyes()
    def Upgarde_Init():
        InitEars()
        InitTail()
        InitFoots()
        InitBody()
        InitFace()
        InitHands()
        InitEyes()
    def main():
        Init()
        t.tracer(False)
        # 眨眼睛动画
        for i in range(30):
            if i % 2 == 0:
                t.reset()
                t.hideturtle()
                Upgarde()
                t.update()
                time.sleep(0.3)
            else:
                t.reset()
                t.hideturtle()
                Upgarde_Init()
                t.update()
                time.sleep(1)
    main()
    # 结束画笔
    t.done()
    

    6.钟表
    在这里插入图片描述

    # -*- coding:utf-8 –*-
    # 用turtlr画时钟
    # 以自定义shape的方式实现
    import turtle as t
    import datetime as d
    def skip(step):  # 抬笔,跳到一个地方
        t.penup()
        t.forward(step)
        t.pendown()
    def drawClock(radius):  # 画表盘
        t.speed(0)
        t.mode("logo")  # 以Logo坐标、角度方式
        t.hideturtle()
        t.pensize(7)
        t.home()  # 回到圆点
        for j in range(60):
            skip(radius)
            if (j % 5 == 0):
                t.forward(20)
                skip(-radius - 20)
            else:
                t.dot(5)
                skip(-radius)
            t.right(6)
    def makePoint(pointName, len):  # 钟的指针,时针、分针、秒针
        t.penup()
        t.home()
        t.begin_poly()
        t.back(0.1 * len)
        t.forward(len * 1.1)
        t.end_poly()
        poly = t.get_poly()
        t.register_shape(pointName, poly)  # 注册为一个shape
    def drawPoint():  # 画指针
        global hourPoint, minPoint, secPoint, fontWriter
        makePoint("hourPoint", 100)
        makePoint("minPoint", 120)
        makePoint("secPoint", 140)
        hourPoint = t.Pen()  # 每个指针是一只新turtle
        hourPoint.shape("hourPoint")
        hourPoint.shapesize(1, 1, 6)
        minPoint = t.Pen()
        minPoint.shape("minPoint")
        minPoint.shapesize(1, 1, 4)
        secPoint = t.Pen()
        secPoint.shape("secPoint")
        secPoint.pencolor('red')
        fontWriter = t.Pen()
        fontWriter.pencolor('gray')
        fontWriter.hideturtle()
    def getWeekName(weekday):
        weekName = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日']
        return weekName[weekday]
    def getDate(year, month, day):
        return "%s-%s-%s" % (year, month, day)
    def realTime():
        curr = d.datetime.now()
        curr_year = curr.year
        curr_month = curr.month
        curr_day = curr.day
        curr_hour = curr.hour
        curr_minute = curr.minute
        curr_second = curr.second
        curr_weekday = curr.weekday()
        t.tracer(False)
        secPoint.setheading(360 / 60 * curr_second)
        minPoint.setheading(360 / 60 * curr_minute)
        hourPoint.setheading(360 / 12 * curr_hour + 30 / 60 * curr_minute)
        fontWriter.clear()
        fontWriter.home()
        fontWriter.penup()
        fontWriter.forward(80)
        # 用turtle写文字
        fontWriter.write(getWeekName(curr_weekday), align="center", font=("Courier", 14, "bold"))
        fontWriter.forward(-160)
        fontWriter.write(getDate(curr_year, curr_month, curr_day), align="center", font=("Courier", 14, "bold"))
        t.tracer(True)
        print(curr_second)
        t.ontimer(realTime, 100)  # 每隔100毫秒调用一次realTime()
    def main():
        t.tracer(False)
        drawClock(160)
        drawPoint()
        realTime()
        t.tracer(True)
        t.mainloop()
    if __name__ == '__main__':
        main()
    

    7.汉诺塔
    在这里插入图片描述

    import turtle
    class Stack:
        def __init__(self):
            self.items = []
        def isEmpty(self):
            return len(self.items) == 0
        def push(self, item):
            self.items.append(item)
        def pop(self):
            return self.items.pop()
        def peek(self):
            if not self.isEmpty():
                return self.items[len(self.items) - 1]
        def size(self):
            return len(self.items)
    def drawpole_3():  # 画出汉诺塔的poles
        t = turtle.Turtle()
        t.hideturtle()
        def drawpole_1(k):
            t.up()
            t.pensize(10)
            t.speed(100)
            t.goto(400 * (k - 1), 100)
            t.down()
            t.goto(400 * (k - 1), -100)
            t.goto(400 * (k - 1) - 20, -100)
            t.goto(400 * (k - 1) + 20, -100)
        drawpole_1(0)  # 画出汉诺塔的poles[0]
        drawpole_1(1)  # 画出汉诺塔的poles[1]
        drawpole_1(2)  # 画出汉诺塔的poles[2]
    def creat_plates(n):  # 制造n个盘子
        plates = [turtle.Turtle() for i in range(n)]
        for i in range(n):
            plates[i].up()
            plates[i].hideturtle()
            plates[i].shape("square")
            plates[i].shapesize(1, 8 - i)
            plates[i].goto(-400, -90 + 20 * i)
            plates[i].showturtle()
        return plates
    def pole_stack():  # 制造poles的栈
        poles = [Stack() for i in range(3)]
        return poles
    def moveDisk(plates, poles, fp, tp):  # 把poles[fp]顶端的盘子plates[mov]从poles[fp]移到poles[tp]
        mov = poles[fp].peek()
        plates[mov].goto((fp - 1) * 400, 150)
        plates[mov].goto((tp - 1) * 400, 150)
        l = poles[tp].size()  # 确定移动到底部的高度(恰好放在原来最上面的盘子上面)
        plates[mov].goto((tp - 1) * 400, -90 + 20 * l)
    def moveTower(plates, poles, height, fromPole, toPole, withPole):  # 递归放盘子
        if height >= 1:
            moveTower(plates, poles, height - 1, fromPole, withPole, toPole)
            moveDisk(plates, poles, fromPole, toPole)
            poles[toPole].push(poles[fromPole].pop())
            moveTower(plates, poles, height - 1, withPole, toPole, fromPole)
    myscreen = turtle.Screen()
    drawpole_3()
    n = int(input("请输入汉诺塔的层数并回车:\n"))
    plates = creat_plates(n)
    poles = pole_stack()
    for i in range(n):
        poles[0].push(i)
    moveTower(plates, poles, n, 0, 2, 1)
    myscreen.exitonclick()
    

    8.高达
    在这里插入图片描述

    import turtle
    t=turtle.Turtle()
    turtle.Turtle().screen.delay(0)
    tleft=turtle.Turtle()
    #第一部分
    t.penup()
    t.goto(0,0)
    t.pendown()
    t.left(20)
    t.forward(110)
    t.left(25)
    t.forward(40)
    t.left(100)
    t.circle(180,20)
    t.right(120)
    t.forward(250)
    t.left(165)
    t.forward(250)
    t.right(100)
    t.forward(35)
    t.left(70)
    t.forward(45)
    t.left(70)
    t.forward(120)
    t.left(70)
    t.forward(80)
    t.left(80)
    t.forward(80)
    t.left(68)
    t.forward(120)
    t.left(180)
    t.forward(78)
    t.right(68)
    t.forward(60)
    t.right(75)
    t.forward(60)
    t.right(110)
    t.forward(15)
    t.left(38)
    t.forward(65)
    t.right(73)#五边形的直边
    t.forward(35)
    t.right(70)
    t.forward(65)
    t.right(68)
    t.forward(50)
    t.right(80)
    t.forward(50)
    t.penup()
    t.goto(-65,68)
    t.pendown()
    t.right(7)
    t.forward(350)
    t.right(165)
    t.forward(330)
    t.penup()
    t.goto(64,65)
    t.pendown()
    t.left(75)
    t.forward(350)
    t.left(165)
    t.forward(330)
    t.penup()
    t.goto(300,500)
    #第二部分
    tleft.left(180)
    tleft.right(20)
    tleft.forward(110)
    tleft.right(25)
    tleft.forward(40)
    tleft.right(100)
    tleft.circle(-180,20)
    tleft.left(120)
    tleft.forward(250)
    tleft.right(165)
    tleft.forward(250)
    tleft.left(100)
    tleft.forward(35)
    tleft.penup()
    tleft.goto(0,0)
    tleft.pendown()
    tleft.left(20)
    tleft.penup()
    tleft.forward(18)
    tleft.pendown()
    tleft.forward(50)#额头竖线
    tleft.penup()
    tleft.forward(110)#消除竖线
    tleft.pendown()
    tleft.left(90)
    tleft.forward(30)
    tleft.right(90)
    tleft.forward(60)
    tleft.right(90)
    tleft.forward(60)
    tleft.right(90)
    tleft.forward(60)
    tleft.right(90)
    tleft.forward(40)
    tleft.penup()
    tleft.forward(30)
    tleft.pendown()
    tleft.left(90)
    tleft.forward(30)
    tleft.right(180)
    tleft.forward(100)
    tleft.right(90)
    tleft.forward(80)
    tleft.right(90)
    tleft.forward(100)
    tleft.penup()
    tleft.goto(150,70)
    tleft.pendown()
    tleft.left(100)
    tleft.forward(40)
    tleft.right(80)
    tleft.circle(-333,40)
    tleft.right(160)
    tleft.forward(230)
    #右半部分
    tleft.left(100)
    tleft.forward(40)
    tleft.left(80)
    tleft.forward(20)
    tleft.left(100)
    tleft.forward(30)
    tleft.right(100)
    tleft.forward(20)
    tleft.right(80)
    tleft.forward(30)
    tleft.left(80)
    tleft.forward(20)
    tleft.left(100)
    tleft.forward(30)
    tleft.right(100)
    tleft.forward(20)
    tleft.right(80)
    tleft.forward(30)
    tleft.left(80)
    tleft.forward(20)
    tleft.left(100)
    tleft.forward(30)
    tleft.right(100)
    tleft.forward(20)
    tleft.right(80)
    tleft.forward(30)
    tleft.left(80)
    tleft.forward(20)
    tleft.left(100)
    tleft.forward(30)
    tleft.right(100)
    tleft.forward(20)
    tleft.right(80)
    tleft.forward(30)
    tleft.left(80)
    tleft.forward(20)
    tleft.left(100)
    tleft.forward(30)
    tleft.right(100)
    tleft.forward(20)
    tleft.right(80)
    tleft.forward(30)
    tleft.left(80)
    tleft.forward(20)
    tleft.left(100)
    tleft.forward(30)
    tleft.right(100)
    tleft.forward(20)
    tleft.right(80)
    tleft.forward(30)
    #右下部分
    tleft.left(70)
    tleft.forward(30)
    tleft.right(110)
    tleft.forward(40)
    tleft.right(60)
    tleft.forward(100)
    tleft.right(30)
    tleft.circle(200,20)
    tleft.left(10)
    tleft.forward(80)
    #右下部分goto
    tleft.penup()
    tleft.goto(145,-198)
    tleft.pendown()
    tleft.left(90)
    tleft.forward(30)
    tleft.right(30)
    tleft.forward(40)
    tleft.right(150)
    tleft.forward(30)
    tleft.backward(30)
    tleft.left(90)
    tleft.forward(100)
    tleft.right(90)
    tleft.forward(30)
    tleft.backward(30)
    tleft.left(90)
    tleft.right(30)
    tleft.circle(200,20)
    tleft.left(10)
    tleft.forward(50)
    #第三部分脸
    t2=turtle.Turtle()
    t2.penup()
    t2.goto(0,-80)
    #尖角
    t2.circle(150,extent=90)
    t2.pendown()
    t2.circle(150,extent=30)
    t2.penup()
    t2.circle(150,extent=18)
    t2.pendown()
    t2.circle(150,extent=27)
    t2.penup()
    t2.circle(150,extent=30)
    t2.pendown()
    t2.circle(150,extent=27)
    t2.penup()
    t2.circle(150,extent=18)
    t2.pendown()
    t2.circle(150,extent=30)
    t2.right(100)
    t2.forward(40)
    #左脸夹
    t2.left(80)
    t2.circle(333,40)
    t2.left(160)
    t2.forward(230)
    #左半部分
    t2.right(100)
    t2.forward(40)
    t2.right(80)
    t2.forward(20)
    t2.right(100)
    t2.forward(30)
    t2.left(100)
    t2.forward(20)
    t2.left(80)
    t2.forward(30)
    t2.right(80)
    t2.forward(20)
    t2.right(100)
    t2.forward(30)
    t2.left(100)
    t2.forward(20)
    t2.left(80)
    t2.forward(30)
    t2.right(80)
    t2.forward(20)
    t2.right(100)
    t2.forward(30)
    t2.left(100)
    t2.forward(20)
    t2.left(80)
    t2.forward(30)
    t2.right(80)
    t2.forward(20)
    t2.right(100)
    t2.forward(30)
    t2.left(100)
    t2.forward(20)
    t2.left(80)
    t2.forward(30)
    t2.right(80)
    t2.forward(20)
    t2.right(100)
    t2.forward(30)
    t2.left(100)
    t2.forward(20)
    t2.left(80)
    t2.forward(30)
    t2.right(80)
    t2.forward(20)
    t2.right(100)
    t2.forward(30)
    t2.left(100)
    t2.forward(20)
    t2.left(80)
    t2.forward(30)
    t2.right(70)
    t2.forward(30)
    t2.left(110)
    t2.forward(40)
    t2.left(60)
    t2.forward(100)
    t2.left(30)
    t2.circle(-200,20)
    t2.right(10)
    t2.forward(80)
    t2.penup()
    t2.goto(-145,-198)#左脸颊
    t2.pendown()
    t2.right(90)
    t2.forward(30)
    t2.left(30)
    t2.forward(40)
    t2.left(150)
    t2.forward(30)
    t2.right(180)
    t2.forward(30)
    t2.left(90)
    t2.forward(100)
    t2.left(90)
    t2.forward(30)
    t2.left(180)
    t2.forward(30)
    t2.left(120)
    t2.circle(-200,20)
    t2.right(10)
    t2.forward(50)
    #左眼
    t2.right(135)
    t2.forward(70)
    t2.left(50)
    t2.forward(40)
    t2.left(20)
    t2.forward(20)
    t2.penup()
    t2.goto(-100,28)
    t2.pendown()
    t2.right(70)
    t2.forward(65)
    t2.left(50)
    t2.forward(40)
    t2.left(40)
    t2.forward(20)
    #左眼带
    t2.penup()
    t2.goto(-105,-10)
    t2.pendown()
    t2.right(100)
    t2.circle(120,extent=20)
    t2.circle(60,extent=80)
    t2.penup()
    t2.goto(-105,-13)
    t2.pendown()
    t2.right(100)
    t2.circle(120,extent=20)
    t2.circle(60,extent=80)
    t2.penup()
    t2.goto(-70,-40)
    t2.pendown()
    t2.left(10)
    t2.forward(30)
    t2.penup()
    t2.goto(-10,-40)
    t2.pendown()
    t2.left(35)
    t2.forward(30)
    t2.penup()
    t2.goto(-80,30)
    t2.pendown()
    t2.right(130)
    t2.forward(47)
    t2.left(50)
    t2.forward(35)
    t2.penup()
    t2.goto(-60,-45)
    t2.pendown()
    t2.right(98)
    t2.forward(60)
    t2.left(20)
    t2.forward(80)
    t2.left(70)
    t2.forward(10)
    t2.left(90)
    t2.forward(50)
    t2.right(60)
    t2.forward(30)
    t2.right(60)
    t2.forward(30)
    t2.right(60)
    t2.forward(50)
    t2.left(90)
    t2.forward(10)
    t2.left(75)
    t2.forward(80)
    t2.left(15)
    t2.forward(60)
    t2.penup()
    t2.goto(-80,-140)
    t2.pendown()
    t2.right(150)
    t2.circle(85,extent=45)
    t2.left(15)
    t2.forward(70)
    t2.left(15)
    t2.circle(55,extent=55)
    t2.penup()
    t2.goto(0,-175)
    t2.pendown()
    t2.left(18)
    t2.forward(170)
    #右眼
    tleft.left(135)
    tleft.forward(70)
    tleft.right(50)
    tleft.forward(40)
    tleft.right(20)
    tleft.forward(20)
    tleft.penup()
    tleft.goto(100,28)
    tleft.pendown()
    tleft.left(70)
    tleft.forward(65)
    tleft.right(50)
    tleft.forward(40)
    tleft.right(40)
    tleft.forward(20)
    #右眼带
    tleft.penup()
    tleft.goto(105,-10)
    tleft.pendown()
    tleft.left(100)
    tleft.circle(-120,extent=20)
    tleft.circle(-60,extent=80)
    tleft.penup()
    tleft.goto(105,-13)
    tleft.pendown()
    tleft.left(100)
    tleft.circle(-120,extent=20)
    tleft.circle(-60,extent=80)
    #右眼睛
    tleft.penup()
    tleft.goto(70,-40)
    tleft.pendown()
    tleft.right(10)
    tleft.forward(30)
    tleft.penup()
    tleft.goto(10,-40)
    tleft.pendown()
    tleft.right(35)
    tleft.forward(30)
    tleft.penup()
    tleft.goto(80,30)
    tleft.pendown()
    tleft.left(130)
    tleft.forward(47)
    tleft.right(50)
    tleft.forward(35)
    #鼻子
    tleft.penup()
    tleft.goto(0,-70)
    tleft.pendown()
    tleft.left(30)
    tleft.forward(20)
    tleft.left(72)
    tleft.forward(10)
    tleft.left(108)
    tleft.forward(20)
    tleft.right(42)
    tleft.forward(20)
    tleft.left(108)
    tleft.forward(10)
    tleft.left(72)
    tleft.forward(20)
    tleft.penup()
    tleft.goto(0,-90)
    tleft.pendown()
    tleft.left(42)
    tleft.forward(20)
    tleft.left(72)
    tleft.forward(10)
    tleft.left(108)
    tleft.forward(20)
    tleft.right(42)
    tleft.forward(20)
    tleft.left(108)
    tleft.forward(10)
    tleft.left(72)
    tleft.forward(20)
    tleft.penup()
    tleft.goto(200,500)
    turtle.done()
    

    9.星空
    在这里插入图片描述

    from turtle import *
    from random import random,randint
    screen = Screen()
    width ,height = 800,600
    screen.setup(width,height)
    screen.bgcolor("black")
    screen.mode("logo")
    screen.delay(0)#这里要设为0,否则很卡
    t = Turtle(visible = False,shape='circle')
    t.pencolor("white")
    t.fillcolor("white")
    t.penup()
    t.setheading(-90)
    t.goto(width/2,randint(-height/2,height/2))
    stars = []
    for i in range(200):
        star = t.clone()
        s =random() /3
        star.shapesize(s,s)
        star.speed(int(s*10))
        star.setx(width/2 + randint(1,width))
        star.sety( randint(-height/2,height/2))
        star.showturtle()
        stars.append(star)
    while True:
        for star in stars:
            star.setx(star.xcor() - 3 * star.speed())
            if star.xcor()<-width/2:
                star.hideturtle()
                star.setx(width/2 + randint(1,width))
                star.sety( randint(-height/2,height/2))
                star.showturtle()
    

    10.狮子头
    在这里插入图片描述

    import turtle as t
    def hair():  # 画头发
        t.penup()
        t.goto(-50, 150)
        t.pendown()
        t.fillcolor('#a2774d')
        t.begin_fill()
        for j in range(10):  # 重复执行10次
            t.setheading(60 - (j * 36))  # 每次调整初始角度
            t.circle(-50, 120)  # 画120度的弧
        t.end_fill()
    def face():  # 画脸
        t.penup()
        t.goto(0, 100)
        t.pendown()
        t.fillcolor('#f2ae20')
        t.begin_fill()
        t.setheading(180)
        t.circle(85)
        t.end_fill()
        # 下巴
        t.circle(85, 120)
        t.fillcolor('white')
        t.begin_fill()
        t.circle(85, 120)
        t.setheading(135)
        t.circle(100, 95)
        t.end_fill()
    def ears(dir):  # 画眼睛,dir用来设置方向,左右眼对称
        t.penup()
        t.goto((0 - dir) * 30, 90)
        t.setheading(90)
        t.pendown()
        t.fillcolor('#f2ae20')
        t.begin_fill()
        t.circle(dir * 30)
        t.end_fill()
        t.penup()
        t.goto((0 - dir) * 40, 85)
        t.setheading(90)
        t.pendown()
        t.fillcolor('white')
        t.begin_fill()
        t.circle(dir * 17)
        t.end_fill()
    def nose():  # 画鼻子
        t.penup()
        t.goto(20, 0)
        t.setheading(90)
        t.pendown()
        t.fillcolor('#a2774d')
        t.begin_fill()
        t.circle(20)
        t.end_fill()
    def eye(dir):  # 画耳朵,dir用来设置方向,左右耳对称
        t.penup()
        t.goto((0 - dir) * 30, 20)
        t.setheading(0)
        t.pendown()
        t.fillcolor('black')
        t.begin_fill()
        t.circle(10)
        t.end_fill()
    def mouth():  # 画嘴巴
        t.penup()
        t.goto(0, 0)
        t.setheading(-90)
        t.pendown()
        t.forward(50)
        t.setheading(0)
        t.circle(80, 30)
        t.penup()
        t.goto(0, -50)
        t.setheading(180)
        t.pendown()
        t.circle(-80, 30)
    hair()
    ears(1)
    ears(-1)
    face()
    eye(1)
    eye(-1)
    mouth()
    nose()
    t.done()
    

    11.捂脸
    在这里插入图片描述

    import turtle
    # 画指定的任意圆弧
    def arc(sa, ea, x, y, r):  # start angle,end angle,circle center,radius
        turtle.penup()
        turtle.goto(x, y)
        turtle.setheading(0)
        turtle.left(sa)
        turtle.fd(r)
        turtle.pendown()
        turtle.left(90)
        turtle.circle(r, (ea - sa))
        return turtle.position()
    turtle.hideturtle()
    # 画脸
    turtle.speed(5)
    turtle.setup(900, 600, 200, 200)
    turtle.pensize(5)
    turtle.right(90)
    turtle.penup()
    turtle.fd(100)
    turtle.left(90)
    turtle.pendown()
    turtle.begin_fill()
    turtle.pencolor("#B26A0F")  # head side color
    turtle.circle(150)
    turtle.fillcolor("#F9E549")  # face color
    turtle.end_fill()
    # 画嘴
    turtle.penup()
    turtle.goto(77, 20)
    turtle.pencolor("#744702")
    turtle.goto(0, 50)
    turtle.right(30)
    turtle.fd(110)
    turtle.right(90)
    turtle.pendown()
    turtle.begin_fill()
    turtle.fillcolor("#925902")  # mouth color
    turtle.circle(-97, 160)
    turtle.goto(92, -3)
    turtle.end_fill()
    turtle.penup()
    turtle.goto(77, -25)
    # 画牙齿
    turtle.pencolor("white")
    turtle.begin_fill()
    turtle.fillcolor("white")
    turtle.goto(77, -24)
    turtle.goto(-81, 29)
    turtle.goto(-70, 43)
    turtle.goto(77, -8)
    turtle.end_fill()
    turtle.penup()
    turtle.goto(0, -100)
    turtle.setheading(0)
    turtle.pendown()
    # 画左边眼泪
    turtle.left(90)
    turtle.penup()
    turtle.fd(150)
    turtle.right(60)
    turtle.fd(-150)
    turtle.pendown()
    turtle.left(20)
    turtle.pencolor("#155F84")  # tear side color
    turtle.fd(150)
    turtle.right(180)
    position1 = turtle.position()
    turtle.begin_fill()
    turtle.fillcolor("#7EB0C8")  # tear color
    turtle.fd(150)
    turtle.right(20)
    turtle.left(270)
    turtle.circle(-150, 18)
    turtle.right(52)
    turtle.fd(110)
    position2 = turtle.position()
    turtle.goto(-33, 90)
    turtle.end_fill()
    # 画右边眼泪
    turtle.penup()
    turtle.goto(0, 0)
    turtle.setheading(0)
    turtle.left(90)
    turtle.fd(50)
    turtle.right(150)
    turtle.fd(150)
    turtle.left(150)
    turtle.fd(100)
    turtle.pendown()
    turtle.begin_fill()
    turtle.fd(-100)
    turtle.fillcolor("#7EB0C8")  # tear color
    turtle.right(60)
    turtle.circle(150, 15)
    turtle.left(45)
    turtle.fd(66)
    turtle.goto(77, 20)
    turtle.end_fill()
    # 画眼睛
    turtle.penup()
    turtle.pencolor("#6C4E00")  # eye color
    turtle.goto(-65, 75)
    turtle.setheading(0)
    turtle.left(27)
    turtle.fd(38)
    turtle.pendown()
    turtle.begin_fill()
    turtle.fillcolor("#6C4E00")  # eye color
    turtle.left(90)
    turtle.circle(38, 86)
    turtle.goto(position2[0], position2[1])
    turtle.goto(position1[0], position1[1])
    turtle.end_fill()
    # 画手
    turtle.pencolor("#D57E18")  # hand side color
    turtle.begin_fill()
    turtle.fillcolor("#EFBD3D")  # hand color
    # 第一个手指
    arc(-110, 10, 110, -40, 30)
    turtle.circle(300, 35)
    turtle.circle(13, 120)
    turtle.setheading(-50)
    turtle.fd(20)
    turtle.setheading(130)
    # 第二个手指
    turtle.circle(200, 15)
    turtle.circle(12, 180)
    turtle.fd(40)
    turtle.setheading(137)
    # 第三个手指
    turtle.circle(200, 16)
    turtle.circle(12, 160)
    turtle.setheading(-35)
    turtle.fd(45)
    turtle.setheading(140)
    # 第四个手指
    turtle.circle(200, 13)
    turtle.circle(11, 160)
    turtle.setheading(-35)
    turtle.fd(40)
    turtle.setheading(145)
    # 第五个手指
    turtle.circle(200, 9)
    turtle.circle(10, 180)
    turtle.setheading(-31)
    turtle.fd(50)
    # 画最后手腕的部分
    turtle.setheading(-45)
    turtle.pensize(7)
    turtle.right(5)
    turtle.circle(180, 35)
    turtle.end_fill()
    turtle.begin_fill()
    turtle.setheading(-77)
    turtle.pensize(5)
    turtle.fd(50)
    turtle.left(-270)
    turtle.fd(7)
    turtle.pencolor("#EFBD3D")
    turtle.circle(30, 180)
    turtle.end_fill()
    # 测试
    # res=arc(70,220,90,50,300)
    # print(res[0],res[1])
    turtle.done()
    

    12.绘制多边形(自定义边的数目(2-6))
    在这里插入图片描述

    #SquareSpiral1.py
    import turtle as t
    # t = turtle.Pen()
    t.bgcolor("black")
    sides=eval(input("输入要绘制的边的数目,请输入2-6的数字!"))
    colors=["red","yellow","green","blue","orange","purple"]
    for x in range(150):
        t.pencolor(colors[x%sides])
        t.forward(x*3/sides+x)
        t.left(360/sides+1)
        t.width(x*sides/200)
    t.exitonclick()
    print("####结束####")
    

    13.绘制数码管日期
    在这里插入图片描述

    import turtle as t
    import datetime
    def drawGap(): #绘制数码管间隔
        t.penup()
        t.fd(5)
    def drawLine(draw):   #绘制单段数码管
        drawGap()
        t.pendown() if draw else t.penup()
        t.fd(40)
        drawGap()
        t.right(90)
    def drawDigit(d): #根据数字绘制七段数码管
        drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False)
        drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False)
        drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False)
        drawLine(True) if d in [0,2,6,8] else drawLine(False)
        t.left(90)
        drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False)
        drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False)
        drawLine(True) if d in [0,1,2,3,4,7,8,9] else drawLine(False)
        t.left(180)
        t.penup()
        t.fd(20)
    def drawDate(date):
        t.pencolor("red")
        for i in date:
            if i == '-':
                t.write('年', font=("Arial", 18, "normal"))
                t.pencolor("green")
                t.fd(40)
            elif i == '=':
                t.write('月', font=("Arial", 18, "normal"))
                t.pencolor("blue")
                t.fd(40)
            elif i == '+':  
                t.write('日', font=("Arial", 18, "normal"))
            else:
                drawDigit(eval(i))
    def main():
        t.setup(800, 350, 200, 200)
        t.penup()
        t.fd(-350)
        t.pensize(5)
        drawDate(datetime.datetime.now().strftime('%Y-%m=%d+'))
        t.hideturtle()
        t.exitonclick()
    main()
    

    14.小狗
    在这里插入图片描述

    from turtle import *
    import turtle as t
    t.screensize(500, 500)
    # 【头部轮廓】
    t.pensize(5)
    t.home()
    t.seth(0)
    t.pd()
    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
    # 确定鼻头大概位置
    x_nose = t.xcor()
    y_nose = t.ycor()
    t.circle(30, 62)  # 8
    t.circle(200, 15)  # 9
    # 【鼻子】
    t.pu()
    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)  # 1
    t.color('black')
    t.circle(10, 15)  # 2
    t.circle(90, 70)  # 3
    t.circle(25, 110)  # 4
    t.rt(4)
    t.circle(90, 70)  # 5
    t.circle(10, 15)  # 6
    t.color('#444444')
    t.circle(15, 45)  # 7
    # 【身体】
    t.pu()
    t.color('black')
    t.goto(x_nose + 90, y_nose - 30)
    t.seth(-130)
    t.pd()
    t.circle(250, 28)  # 1
    t.circle(10, 140)  # 2
    t.circle(-250, 25)  # 3
    t.circle(-200, 25)  # 4
    t.circle(-50, 85)  # 5
    t.circle(8, 145)  # 6
    t.circle(90, 45)  # 7
    t.circle(550, 5)  # 8
    # 【尾巴】
    t.seth(0)
    t.circle(60, 85)  # 1
    t.circle(40, 65)  # 2
    t.circle(40, 60)  # 3
    t.lt(150)
    t.circle(-40, 90)  # 4
    t.circle(-25, 100)  # 5
    t.lt(5)
    t.fd(20)
    t.circle(10, 60)  # 6
    # 【背部】
    t.rt(80)
    t.circle(200, 35)
    # 【项圈】
    t.pensize(20)
    t.color('#F03C3F')
    t.lt(10)
    t.circle(-200, 25)  # 5
    # 【爱心铃铛】
    t.pu()
    t.fd(18)
    t.lt(90)
    t.fd(18)
    t.pensize(6)
    t.seth(35)
    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()
    

    15.小人发射爱心
    在这里插入图片描述

    import turtle as t
    from time import sleep
    def go_to(x, y):
        t.up()
        t.goto(x, y)
        t.down()
    def head(x, y, r):
        go_to(x, y)
        t.speed(20)
        t.circle(r)
        leg(x, y)
    def leg(x, y):
        t.right(90)
        t.forward(180)
        t.right(30)
        t.forward(100)
        t.left(120)
        go_to(x, y - 180)
        t.forward(100)
        t.right(120)
        t.forward(100)
        t.left(120)
        hand(x, y)
    def hand(x, y):
        go_to(x, y - 60)
        t.forward(100)
        t.left(60)
        t.forward(100)
        go_to(x, y - 90)
        t.right(60)
        t.forward(100)
        t.right(60)
        t.forward(100)
        t.left(60)
        eye(x, y)
    def eye(x, y):
        go_to(x - 50, y + 130)
        t.right(90)
        t.forward(50)
        go_to(x + 40, y + 130)
        t.forward(50)
        t.left(90)
    def big_Circle(size):
        t.speed(20)
        for i in range(150):
            t.forward(size)
            t.right(0.3)
    def line(size):
        t.speed(20)
        t.forward(51 * size)
    def small_Circle(size):
        t.speed(20)
        for i in range(210):
            t.forward(size)
            t.right(0.786)
    def heart(x, y, size):
        go_to(x, y)
        t.left(150)
        t.begin_fill()
        line(size)
        big_Circle(size)
        small_Circle(size)
        t.left(120)
        small_Circle(size)
        big_Circle(size)
        line(size)
        t.end_fill()
    def main():
        t.pensize(2)
        t.color('red', 'pink')
        head(-120, 100, 100)
        heart(250, -80, 1)
        go_to(100, -300)
        t.write("To: 智慧与美貌并存的", move=True, align="left", font=("楷体", 20, "normal"))
        t.done()
    main()
    
    展开全文
  • turtle:海龟先生的意思。 Python老是用动物的名字! 首先要引入呀! 不引入当然是不可以用的呀! turtle.forward(100):效果图 鼠标前进100步! 后退的话,鼠标就又回来啦! 当然也可以向右向左!...

    欢迎到来,如果对你有任何帮助;
    希望动动小手,点下关注:
    在这里插入图片描述

    turtle:海龟先生的意思。
    Python老是用动物的名字!
    

    首先要引入呀!
    不引入当然是不可以用的呀!
    在这里插入图片描述

    turtle.forward(100):效果图
    鼠标前进100步!
    在这里插入图片描述
    后退的话,鼠标就又回来啦!
    在这里插入图片描述
    当然也可以向右向左!鼠标会改变角度!
    向右旋转多少度,向左旋转多少度呀之类的!
    在这里插入图片描述turtle.left(90):这一下,又旋转回来啦!
    在这里插入图片描述
    鼠标走过的途径不会擦除,会一直保留着!
    画出了一个矩形,这是通过变量来控制的。也可以通过循环来控制!

    import turtle
    i = 0
    a = 6
    b = 45
    while True:
        if i > 33:
            break
        turtle.forward(a)
        turtle.right(b)
        turtle.forward(a)
        turtle.left(b)
        i+=1
    

    G9nLmNzZG4ubmV0L3dlaXhpbl80Mjg1OTI4MA==,size_16,color_FFFFFF,t_70)

    来画一个螺旋形状的图形!
    改变一下角度就好啦!

    import turtle
    i = 0
    a = 6
    b = 90
    while True:
        if i > 12:
            break
        turtle.forward(a)
        turtle.right(b)
        turtle.forward(a)
        i+=1
        a += 10
    

    在这里插入图片描述
    画出圆:
    利用距离,角度。一次增加1.来实现!

    import turtle
    i = 0
    while i < 360:
        turtle.forward(1)
        turtle.right(1)
        i += 1
    

    在这里插入图片描述

    几条边组成的圆,你来控制!
    代码:

    import turtle
    i = int(input('你想要几边来密封呢?'))
    angle = 360.0 / i
    distance = 1000.0 / i
    for s in range(i):
        turtle.forward(distance)
        turtle.right(angle)
    turtle.done()
    

    注意,数字格式:
    i需要是int类型数据。要不然无法转换!
    除数最后得到的是浮点数!

    1. i = int(input(‘你想要几边来密封呢?’))
    2. angle = 360.0 / i
    3. distance = 1000.0 / i
      在这里插入图片描述
      进行颜色填充:1
      目前,我掌握的所填充的必须是一个封闭图形。一下子出来完的那种!
      代码:
    import turtle
    i = int(input('你想要几边来密封呢?'))
    angle = 360.0 / i
    distance = 1000.0 / i
    turtle.begin_fill()
    turtle.color("yellow")
    turtle.circle(distance,steps=i)
    turtle.end_fill()
    turtle.done()
    

    在这里插入图片描述
    也可以通过调用函数来画图形!
    代码:

    import turtle
    def drawShape(sides,length):
        angle = 360.0/sides
        for side in range(sides):
            turtle.forward(length)
            turtle.right(angle)
    def moveTurtle(x,y):
        turtle.penup()
        turtle.goto(x,y)
        turtle.pendown()
    
    drawShape(4,60)
    moveTurtle(110,30)
    drawShape(3,90)
    turtle.done()
    

    在这里插入图片描述

    随机生成图像:
    代码:
    shape决定绘制图形形状:

    1. 矩形
    2. 三角形
    import turtle
    import random
    def drawShape(sides,length):
        angle = 360.0/sides
        for side in range(sides):
            turtle.forward(length)
            turtle.right(angle)
    def moveTurtle(x,y):
        turtle.penup()
        turtle.goto(x,y)
        turtle.pendown()
    def drawSquare(length):
        drawShape(4,length)
    def drawTriangle(length):
        drawShape(3,length)
    def drawCircle(length):
        drawShape(360,length)
    
    def drawRandom():
        x = random.randrange(-200,200)
        y = random.randrange(-200,200)
        length = random.randrange(75)
        shape = random.randrange(1,4)
        moveTurtle(x,y)
    
        if shape == 1:
            drawSquare(length)
        elif shape == 2:
            drawTriangle(length)
        elif shape == 3:
            length = length % 4
            drawCircle(length)
    
    for shape in range(100):
        drawRandom()
    
    turtle.done()
        
    
    

    在这里插入图片描述

    展开全文
  • t.setup(1000,600) # 设置画布的大小 t.speed(10) # 设置画笔速度为10 t.pensize(5) # 设置画笔大小 t.pencolor("SpringGreen4") # 设置画笔颜色 t.penup() # 提笔 t.goto(250,180) # 画笔前往坐标(250,18
  • Python使用turtle画一朵美丽的玫瑰花

    万次阅读 2019-06-23 07:21:29
    turtle 是 Python中一个强大的绘制图像的库,可以用来绘制各种图像,看看本文使用Python的turtle库画一朵美丽的玫瑰花。 但是需要计算各种角度、距离等,所以要想完成一幅复杂的图像还是有一定的难度的,此代码源自...

    turtle 是 Python中一个强大的绘制图像的库,可以用来绘制各种图像,看看本文使用Python的turtle库画一朵美丽的玫瑰花。

    但是需要计算各种角度、距离等,所以要想完成一幅复杂的图像还是有一定的难度的,此代码源自北京理工大学嵩天的《Python语言程序设计》中的案例。

    import turtle as t
    # 定义一个曲线绘制函数
    def DegreeCurve(n, r, d=1):
        for i in range(n):
            t.left(d)
            t.circle(r, abs(d))
    # 初始位置设定
    s = 0.2 # size
    t.setup(450*5*s, 750*5*s)
    t.pencolor("black")
    t.fillcolor("red")
    t.speed(100)
    t.penup()
    t.goto(0, 900*s)
    t.pendown()
    # 绘制花朵形状
    t.begin_fill()
    t.circle(200*s,30)
    DegreeCurve(60, 50*s)
    t.circle(200*s,30)
    DegreeCurve(4, 100*s)
    t.circle(200*s,50)
    DegreeCurve(50, 50*s)
    t.circle(350*s,65)
    DegreeCurve(40, 70*s)
    t.circle(150*s,50)
    DegreeCurve(20, 50*s, -1)
    t.circle(400*s,60)
    DegreeCurve(18, 50*s)
    t.fd(250*s)
    t.right(150)
    t.circle(-500*s,12)
    t.left(140)
    t.circle(550*s,110)
    t.left(27)
    t.circle(650*s,100)
    t.left(130)
    t.circle(-300*s,20)
    t.right(123)
    t.circle(220*s,57)
    t.end_fill()
    # 绘制花枝形状
    t.left(120)
    t.fd(280*s)
    t.left(115)
    t.circle(300*s,33)
    t.left(180)
    t.circle(-300*s,33)
    DegreeCurve(70, 225*s, -1)
    t.circle(350*s,104)
    t.left(90)
    t.circle(200*s,105)
    t.circle(-500*s,63)
    t.penup()
    t.goto(170*s,-30*s)
    t.pendown()
    t.left(160)
    DegreeCurve(20, 2500*s)
    DegreeCurve(220, 250*s, -1)
    # 绘制一个绿色叶子
    t.fillcolor('green')
    t.penup()
    t.goto(670*s,-180*s)
    t.pendown()
    t.right(140)
    t.begin_fill()
    t.circle(300*s,120)
    t.left(60)
    t.circle(300*s,120)
    t.end_fill()
    t.penup()
    t.goto(180*s,-550*s)
    t.pendown()
    t.right(85)
    t.circle(600*s,40)
    # 绘制另一个绿色叶子
    t.penup()
    t.goto(-150*s,-1000*s)
    t.pendown()
    t.begin_fill()
    t.rt(120)
    t.circle(300*s,115)
    t.left(75)
    t.circle(300*s,100)
    t.end_fill()
    t.penup()
    t.goto(430*s,-1070*s)
    t.pendown()
    t.right(30)
    t.circle(-600*s,35)
    t.done()

    运行结果

    玫瑰花

    展开全文
  • python入门turtle库简单绘图(螺旋曲线图)

    万次阅读 多人点赞 2018-10-26 16:28:17
    从入门学习python还是有点时间里,CSDN还是帮了我很多忙,这几天写了几个简单的turtle绘图,哈哈,兴趣所致,所以来分享一下我的三个代码,纯粹原创,不喜勿喷嘛 我用的是VSCODE,个人觉得挺好用的,就是turtle的...
  • 最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成) one 樱花树 动态生成樱花 效果图(这...
  • 1.安装turtle提示错误:Command "python setup.py egg_info" failed with error code 1仔细查看安装turtle出错的错误信息,可以看到是个语法错误。pip在下载turtle0.0.2包后,会解压到本地再安装,提示的错误在解压...
  • 安装turtle提示错误:Command "python setup.py egg_info" failed with error code 1仔细查看安装turtle出错的错误信息,可以看到是个语法错误。pip在下载turtle 0.0.2包后,会解压到本地再安装,提示的...
  • 2、利用turtle工具包演示该校徽绘制的全过程,并将新生成图标保存为png图片。需求分析1、本课题的内容和要求有三点:(1)给定任意一个图标,如校徽,识别校徽的颜色,轮廓,内容等特征。(2)利用turtle工具包演示图标...
  • Python turtle库的应用——蛇 turtle库介绍 1、Turtle中的turtle.setup()函数用于启动一个图形窗口,它有四个参数 turtle.setup(width, height, startx, starty) 分别是:启动窗口的宽度和高度表示窗口启动时,窗口...
  • Python心形图-采用turtle模块画心形

    千次阅读 2019-06-16 15:19:46
    python给我们提供了丰富多彩的模块,其中turtle是其中图形绘制方面的一个非常重要模块。通过turtle模块我们可以绘制各种各样的图形: import turtle as t t.penup() t.seth(-90) t.fd(160) t.pendown() t.pensize...
  • 最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~) one 樱花树 动态生成樱花 效果图(这个...
  • python学习篇,turtle

    千次阅读 2021-02-03 01:00:44
    什么是turtle库?turtle库是python的标准库之一。是python的基础绘图库。简单来说,turtle库也就用来做基本图形绘制用的,turtle又有海龟的意思也被称为‘海龟’库。既然学习turtle库,那么就要知道turtle库的用法...
  • Python turtle库学习笔记

    千次阅读 2021-01-29 02:27:35
    一、基础概念1、画布:画布就是turtle为我们展开用于绘图区域,...(1)turtle.screensize(canvwidth, canvheight, bg):参数分别为画布的宽(单位像素), 高, 背景颜色如:turtle.screensize(500,1000,'green')2)turtle....
  • 小甲鱼零基础入门学习python笔记

    万次阅读 多人点赞 2019-08-14 11:06:30
    小甲鱼老师零基础入门学习Python全套资料百度云(包括小甲鱼零基础入门学习Python全套视频+全套源码+全套PPT课件+全套课后题及Python常用工具包链接、电子书籍等)请往我的资源...
  • 单行注释的方法为:在行首加个# 多行注释的方法为:'''(注释内容)''' ,即前各后加3各单引号 3.turtle库 利用turtle画图: import turtle turtle.setup(1000,800) turtle.position() turtle.pensize(2) turtle....
  • python内置库turtle绘制有趣图形

    万次阅读 多人点赞 2018-08-19 21:57:50
    import turtle t = turtle.Pen() turtle.bgcolor(&quot;black&quot;) sides = 6 colors = [&quot;red&quot;, &quot;yellow&quot;, &quot;green&quot;, &quot;blue&quot;, ...
  • 一、基础概念1、画布:画布就是turtle为我们展开用于绘图...(1)turtle.screensize(canvwidth, canvheight, bg):参数分别为画布的宽(单位像素), 高, 背景颜色如:turtle.screensize(500,1000,'green')2)turtle....
  • 一、基础概念1、画布:画布就是turtle为我们展开用于绘图区域,...(1)turtle.screensize(canvwidth, canvheight, bg):参数分别为画布的宽(单位像素), 高, 背景颜色如:turtle.screensize(500,1000,'green')(2) turtl...
  • 使用python绘制turtle

    2020-10-07 00:02:18
    python中使用turtle这个包可以构建一个画板。该包允许使用者直接进行绘画,创建的内容由轨迹而确定。 简单介绍其中的一些语法,以及API对应的效果。 完整的manual of turtle-python 传送门:...
  • python中关于turtle库的学习笔记

    千次阅读 2020-11-20 23:22:07
    一、基础概念1、画布:画布就是turtle为我们展开用于绘图...(1)turtle.screensize(canvwidth, canvheight, bg):参数分别为画布的宽(单位像素), 高, 背景颜色如:turtle.screensize(500,1000,'green')2)turtle....
  • 1.环境pip install turtal如果安装失败:1.1 wget turtal的下载地址,自行解压...你的下载turtle路径"。2. 当导包turtal时,报错如下File "/usr/lib/python3.6/turtle.py", line 107, in import tki...
  • turtle库 使用

    2021-03-11 11:43:34
    turtle_sunflower # coding=utf-8 import turtle, time # 同时设置pencolor=color1, fillcolor=color2 turtle.pensize(5) turtle.color("#ff8585", "#ff4646") turtle.speed('fast') turtle.begin_fill() #To be ...
  • Python-Turtle 简易教程

    2020-11-24 10:51:18
    Python-Turtle 简易教程Python中的Turtle库是自带的一个简单画图库,以tkinter为底层实现。我们通过控制初始位置为(0,0)的海龟进行移动,在屏幕上留下线条最终构成我们想要的图像。废话不多说,先上代码:...
  • 就是那个三十年前用过的“海龟画图”程序,如今python的turtle库把它给复活了。 turtle库函数 >>> t.__all__ ['ScrolledCanvas', 'TurtleScreen', 'Screen', 'RawTurtle', 'Turtle', 'RawPen', 'Pen', ...
  • LINE = -300 FINISH_LINE = 300 screen = Screen() screen.setup(1000, 600) t = Turtle(visible=False) t.speed('fastest') # Race Lanes for y in range(-200, 300, 100): t.up() t.goto(START_LINE - 100, y) t....
  • turtle(海龟库)是python的一个绘制图像的函数库,它就像海龟一样,给定指令和坐标,在画布坐标系中一步一步绘制出你想要的图形,比如小猪佩奇、哆啦A梦、皮卡丘等。 安装 看着这么多卡通图形,博主就安奈...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,468
精华内容 1,387
热门标签
关键字:

turtle1000