如何画一只年兽(附代码及教程)

画年兽嘛,其实是一件特别费脑细胞而且特别麻烦的事——特别是在坐标、线段长度等参数还没有确定的情况下。本人冒着头发掉光的危险,画了一个年兽(???)(如下图)

快过年了,先给各位拜个早年~嘿嘿,祝看到这篇文章的各位身体平安,心想事成,万事如意噢~

好叻废话不多说,现在我就把做法分享给各位

1.首先导入turtle

from turtle import *
#或 import turtle

用from···import···是因为后期在编写程序的时候可以简写程序。

例如:turtle.fd()可以简写成fd()#forward可以简写成fd

2.设置左上角标题,屏幕长宽,画笔速度、宽度。然后隐藏画笔

title('年兽来咯~~~')#设置左上角标题为‘年兽来咯~~~’
screensize(1000,900,'red')#设置屏幕长,宽,颜色
speed(0)#设置画笔速度(最快为0)
pensize(5)#设置画笔的宽度
hideturtle()#隐藏画笔

接着我会将程序分成调用区和定义区(定义区在调用区上面)

3.设置函数“taibi”(为了方便抬笔,确定位置,再落笔)

def taibi(x,y):#def后跟函数名,括号内为变量
    up()#抬笔
    goto(x,y)#使画笔移动到横坐标为x,纵坐标为y的位置
    down()#落笔

由于程序重复用到这几个模块,所以我将它们整合为一个函数,方便调用及输出

(4.)此函数可设可不设,本人懒(bushi),想少敲几个字母(设置笔的颜色)

def yanse(a):
    pencolor(a)
#或用时直接就pencolor(),就不需要设置函数了

4.定义函数来画年兽的角

def jiao(f,g,h,j):
    fillcolor('coral4')#这个颜色在https://tool.oschina.net/commons?type=3有详细介绍
    begin_fill()
    right(95)

    #角的第一条线

    for i in range(1,131):
        fd(1)
        right(f)
    left(25)#调整画笔的角度

    #角的第二条线

    for i in range(1,46):
        fd(1)
        left(g)
        g += 0.1

    #角的第三条线

    for i in range(1,111):
        fd(1)
        right(h)
        #用if条件判断语句去在适当的时候调整画笔
        if i > 89:
            h += 0.03
            j += 1
    end_fill()
#调用如下
yanse('coral4')
taibi(-200,200)
jiao(-0.6,1.2,0.4,0)

 5.画年兽的头发,依然定义函数

def dingfa(k,l,m,c1,d1,e1,f1,h1,i1,j1,k1,a2,b2,a1,b1):
    fd(10)
    left(60)
    fd(55)
    for i in range(1,99):
        fd(l)
        right(k)
        k += 0.8
        if i > 10 and i <80:
            k = 0.8
            l = 0.5
        elif i>79:
            k = 0.5
            l = 1.1
    right(120)
    for i in range(1,76):
        fd(1)
        right(-0.6)
    left(25)
    for i in range(1,61):
        fd(1)
        left(m)
        m += 0.06
    right(40)
    for i in range(1,46):
        fd(1)
        right(0.3)
    right(120)
    left(50)
    for i in range(1,251):
        fd(c1)
        right(d1)   
        if d1 > 0.8:
            d1 -= 0.5        
        if i > 30 and i<161:
            d1 = 0.5
            if d1 > -0.6:
                d1 -= 0.3
        elif i > 160:
            d1 = -0.7
            c1 = 0.7
    right(125)
    for i in range(1,121):
        fd(e1)
        right(f1)
        if i > 109:
            f1 += 0.01
    left(170)
    for i in range(1,66):
        fd(h1)
        left(i1)
    right(160)
    for i in range(1,76):
        fd(j1)
        right(k1)
        if i > 46:
            j1 += 0.03
    right(80)
    for i in range(1,156):
        if i < 21:
            fd(a2)
            left(b2)
        elif i > 20 and i < 51:
            fd(a2 - 0.2)
            left(b2 + 0.8)
        elif i > 50 and i < 61:
            fd(a2 - 0.2)
            left(b2 + 0.9)
        elif i > 60 and i < 105:
            fd(a2 + 0.9)
            right(b2 - 0.2)
        elif i > 104:
            fd(a2 + 0.5)
            right(b2 + 0.31)
    right(130)
    for i in range(1,36):
        fd(a2)
        left(b2 - 0.15)
    right(45)
    for i in range(1,101):
        if i < 41:
            fd(a2)
            left(b2 - 0.05)
        elif i > 40:
            fd(a2 + 0.2)
            if i == 41:
                left(30)
            else:
                left(b2 - 0.3)
    left(155)
    for i in range(1,201):
        if i < 50:
            fd(a2)
            right(b2 - 0.15)
        elif i > 49 and i < 90:
            fd(a2 + 0.4)
            right(b2 + 0.8)
        elif i >89 and i < 106:
            fd(a2 + 0.5)
            left(b2 + 0.8)
    goto(-87,87)
    for i in range(1,41):
        if i == 1:
            right(20)
        fd(0.9)
        right(b1 - 0.7)
        if i > 15 and i < 26:
            right(0.2)
        elif i > 25:
            left(0.4)
    left(30)
    for i in range(1,16):
        fd(a1)
        right(b1)
#调用如下
taibi(-130,68)
yanse('chocolate1')
fillcolor('darkorange')
begin_fill()
dingfa(0.5,1.2,1.2,0.8,4,0.6,0.3,0.8,0.3,0.6,0.2,0.5,0.4,1,0.8)
end_fill()

6. 我们定义眉毛函数与眼睛,由于我画的黑眼珠是用dot画的,需要用眉毛来掩盖住一部分,所以我们先画眼睛再画眉毛(眉毛和眼睛各定义两个函数作区分)

def meimao1(e2):
    left(160)
    for i in range(1,6):
        fd(e2)
        left(90)
        e2 += 4#利用递增或递减来改变形状
    right(58)
    for i in range(1,11):
        if i < 11:
            fd(4)
    right(19)
    for i in range(1,91):
        fd(0.6)
        left(0.3)
    left(40)
    for i in range(1,71):
        fd(0.5)
        right(0.4 - 0.15)
    left(175)
    for i in range(1,76):  
        if i < 56:
            fd(1)
            right(1)
        else:
            fd(0.5 + 0.5)
            left(0.4 + 0.8)
    for i in range(47):
        fd(1)
        if i == 46:
            left(0.5)
        else:
            left(0.8)      
def meimao2(f2,g2,h2,i2):
    right(170)
    for i in range(1,6):
        fd(f2)
        right(90)
        f2 += 4
    f2 = 5
    left(70)
    for i in range(1,21):
        if i > 10:
            if i == 11:
                left(17)
            else:
                if i > 16:
                    left(0.2)
                else:
                    fd(f2 - 4)
                    left(g2 + 0.4)
        else:
            fd(f2 - 3.5)
    for i in range(1,33):
        if i < 11:
            fd(f2 - 3)
            right(g2 + 0.2)
            g2 += 0.3
        if i < 16 and i > 10:
            fd(f2 - 3)
            right(g2 + 0.3)
            g2 += 0.65
        elif i > 15:
            fd(f2 - 1.5)
            right(g2 + 0.4)
            g2 -= 0.5
    right(175)
    for i in range(1,80):
        fd(i2)
        left(h2)
        if i > 69:
            if i == 70:
                h2 = 0.5
                i2 = 1.5
            else:
                h2 += 0.32
        else:
            h2 = 0.8
            i2 = 0.5
    for i in range(1,26):
        if i < 11:
            fd(f2 - 3.5)
        else:
            if i == 1:
                left(17)
                g2 = 0.4
            else:
                if i > 24:
                    left(0.2)
                else:
                    fd(f2 - 4)
                    left(g2 + 0.4)
    for i in range(1,21):
        fd(1)
        right(1)
def yanjing1(j2,k2):
    right(20)
    for i in range(1,16):
        fd(0.7)
        right(0.8)
    for i in range(1,51):
        if i < 21:
            j2 += 1
            fd(0.1)
            right(j2)
        elif i > 20 and i < 38:
            if j2 > 0.4:
                j2 -= 1.6
                fd(k2 - 9)
                right(j2)
                k2 += 0.8
    left(100)
    fd(21)
    dot(20)
    fd(20)
def yanjing2(l1,l2,a3):
    left(138)
    for i in range(1,16):
        fd(0.6)
        left(1.2)
    for i in range(1,36):
        if i < 21:
            fd(0.9)
            left(l1)
            l1 += 0.2
        elif i > 20:
            fd(l2 + 0.1)
            left(a3 - 0.6)
            l2 += 0.18
            a3 += 0.19
    left(140)
    fd(29)
    dot(25)
    fd(28)
#调用如下
taibi(-80,26)
yanse('black')
fillcolor('white')
begin_fill()
yanjing2(0.5,1,1)
end_fill()
taibi(-87,39)
yanse('goldenrod1')
fillcolor('darkorange')
begin_fill()
meimao1(5)
end_fill()
taibi(-160,27)
yanse('black')
fillcolor('white')
begin_fill()
yanjing1(1,1)
end_fill()
taibi(-155,39)
yanse('goldenrod1')
fillcolor('darkorange')
begin_fill()
meimao2(5,0.4,0.5,1.2)
end_fill()

7.接着我们再画年兽两边的鬓发(我在这叫它侧发)

def cefa1(b3):
    right(17)
    fd(30)
    left(60)
    fd(10)
    left(120)
    fd(12)
    for i in range(1,26):
        fd(0.9)
        left(b3)
        b3 += 0.08
def cefa2(c3):
    for i in range(1,6):
        right(90)
        fd(c3)
        c3 += 8
    fd(20)
    right(12)
    for i in range(1,231):
        if i > 135:
            if i > 170:
                fd(1)
                right(0.2)
            else:
                fd(0.5)
                right(0.4)
        elif i > 105 and i < 136:
            fd(0.3)
            right(1.2)
        elif i > 95 and i < 106:
            fd(0.3)
            right(1.3)
        elif i > 50 and i < 95:
            fd(1.4)
            left(0.2)
        elif i < 51:
            fd(1)
            left(0.71)
    right(140)
    for i in range(1,146):
        if i > 105 and i < 146:
            fd(0.3)
            right(1.2)
        elif i > 95 and i < 106:
            fd(0.3)
            right(1.3)
        elif i > 50 and i < 95:
            fd(1.4)
            left(0.2)
        elif i < 51:
            fd(1)
            left(0.71)
    left(180)
    for i in range(1,41):
            fd(0.3)
            left(1.2)
    right(45)
    for i in range(1,21):
        fd(1)
        right(0.2)
    right(125)
    for i in range(1,31):
        fd(1)
        right(0.68)
    for i in range(1,46):
        fd(1)
        right(0.3)
    for i in range(1,81):
        fd(0.5)
        right(0.4)
    for i in range(1,108):
        fd(0.47)
        right(0.4)
#输出如下
taibi(-207,49)
yanse('goldenrod1')
fillcolor('darkorange')
begin_fill()
cefa1(1)
end_fill()
taibi(-38,22)
yanse('goldenrod1')
fillcolor('darkorange')
begin_fill()
cefa2(6.5)
end_fill()

8.画下巴鼻子和嘴巴(都定义在一个函数中)

def xbzbbz(d3,e3):
    left(78)
    for i in range(1,51):
        fd(0.9)
        right(0.5)
    for i in range(1,35):
        fd(1)
        right(0.4)
    for i in range(1,19):
        fd(d3)
        right(e3)
        e3 += 0.4
        d3 += 0.1
    taibi(-197,9)
    right(170)
    d3 = 0.4
    e3 = 1
    for i in range(1,83):
        if i > 45:
            d3 = 0.2
            e3 = 0.8
            fd(e3)
            left(d3) 
        else:
            fd(e3)
            left(d3)
            d3 += 0.05
            e3 += 0.02
    taibi(-126,-28)
    left(48)
    yanse('#51150b')
    fillcolor('#51150b')
    begin_fill()
    for i in range(1,46):
        fd(0.8)
        left(0.8)
    left(90)
    for i in range(1,76):
        if i < 7:
            fd(0.7)
            left(1)
        elif i < 69 and i > 6:
            fd(0.5)
            left(0.2)
        else:
            fd(0.7)
            left(1)
    left(83)
    for i in range(1,46):
        fd(0.8)
        left(0.8)
    end_fill()
    taibi(-140,-42)
    yanse('chocolate1')
    right(4)
    fd(12)
    left(48)
    fd(30)
    left(58)
    fd(13)
#调用如下
taibi(-38,-2)
yanse('chocolate1')
xbzbbz(0.9,2.1)
taibi(-130,-64)

9.画脖子旁的鬓发(简称领发)

def lingfa1(f3,g3,h3):
    for i in range(1,5):
        left(90)
        fd(f3)
        f3 += 3
    left(78)
    fd(16)
    left(50)
    fd(5)
    right(60)
    fd(11)
    left(55)
    for i in range(1,26):
        if g3 < 1.63:
            fd(h3)
            right(1.3)
        else:
            fd(h3)
            right(g3)
            g3 -= 0.049
            h3 -= 0.025
    left(110)
    for i in range(1,84):
        fd(0.79)
        left(1.1)
    for i in range(1,71):
        fd(0.5)
        left(1)
def lingfa2(i3):
    for i in range(1,5):
        fd(i3)
        i3 += 3
        right(90)
    left(10)
    fd(9)
    right(45)
    fd(12)
    left(58)
    fd(12)
    right(53)
    for i in range(1,90):
        fd(0.9)
        left(0.5)
    right(9.8)
    fd(10)
    right(76)
    for i in range(1,98):
        fd(0.47)
        left(0.4)
    for i in range(1,71):
        fd(0.5)
        left(0.4)
    right(40)
    for i in range(1,31):
        fd(0.7)
        right(0.5)
    right(140)
    for i in range(1,131):
        if i > 105:
            fd(0.5)
            right(1.2)
        elif i > 50 and i < 106:
            fd(0.7)
            right(1)
        elif i < 51:
            fd(0.85)
            left(0.55)
    left(165)
    for i in range(1,31):
        fd(0.7)
        right(0.5)
    right(145)
    for i in range(1,89):
        fd(0.65)
        left(1.19)
    for i in range(1,91):
        fd(0.85)
        right(1.45)
#调用如下
taibi(-38,-2)
yanse('chocolate1')
xbzbbz(0.9,2.1)

10.画铃铛(再次使用dot函数去画圆)

def lingdang():
    dot(40,'darkorange1')#dot(直径,颜色(默认黑色))
    taibi(-133,-87)
    right(110)
    for i in range(1,48):
        fd(0.7)
        right(0.52)
    taibi(-133,-95)
    left(25)
    for i in range(1,51):
        fd(0.7)
        right(0.52)
    taibi(-113,-102)
    dot(9,'lightsalmon4')
    yanse('lightsalmon4')
    right(88)
    fd(12)
#调用如下
taibi(-115,-94)
yanse('firebrick2')
lingdang()

11.倒数第二步就是下半身了

def xiabanshen():
    fd(80)
    left(72)
    for i in range(1,51):
        fd(1)
        left(1.1)
    taibi(-90,-89)
    right(132)
    for i in range(1,86):
        fd(1)
        left(0.25)
    left(75)
    for i in range(1,48):
        fd(1.1)
        left(0.7)
    left(65)
    fd(63)
    taibi(-45,-135)
    right(80)
    fd(50)
    taibi(19,-90)
    right(142)
    for i in range(1,51):
        fd(1)
        left(1)
    right(15)
    fd(20)
    left(88)
    for i in range(1,61):
        fd(0.9)
        left(0.6)
    left(80)
    fd(12)
    left(70)
    fd(2)
    right(100)
    fd(2)
    for i in range(1,156):
        if i < 41:
            fd(0.99)
            right(0.4)
        elif i > 40 and i < 100:
            if i == 41:
                left(25)
            else:
                fd(1)
                left(1)
        elif i > 100:
            fd(0.7)
            left(0.3)
#调用如下
taibi(-136,-87)
yanse('chocolate1')
xiabanshen()

12.最后,就只剩尾巴咯

def weiba(l3,l4):
    right(130)
    for i in range(1,211):
        if i < 101:
            if i < 20:
                fd(0.8)
                right(1.1)
            else:
                fd(1)
                left(0.78)
        elif i < 111 and i > 100:
            if i == 101:
                left(90)
                fd(1)
            elif i == 110:
                fd(1)
                left(90)
            else:
                fd(1)
        else:
            if i > 190:
                fd(0.72)
                left(0.9)
            else:
                fd(1)
                right(0.9)
    taibi(130,0)
    left(146)
    begin_fill()
    for i in range(1,6):
        fd(l3)
        left(90)
        l3 += 3
    right(26)
    for i in range(1,201):
        if i < 81:
            fd(0.8)
            left(1)
        elif i < 101 and i > 80:
            if i == 81:
                right(32)
                fd(0.5)
            elif i == 100:
                left(66)
            else:
                fd(0.5)
        elif i < 121 and i > 100:
            if i == 120:
                fd(0.5)
                right(32)
            elif i == 101:
                left(66)
            else:
                fd(0.5)
        else:
            fd(0.8)
            left(1)
    right(26)
    for i in range(1,6):
        left(90)
        l4 -= 3
        fd(l4)
    end_fill()
#调用如下
taibi(55,-65)
yanse('goldenrod1')
weiba(5,20)

最后的最后,别忘了加上done()噢,否则程序一运行完就关闭咯

源代码如下:

from turtle import *
title('年兽来咯~~~')
screensize(1000,900,'red')
speed(0)
pensize(5)

def taibi(x,y):
    up()
    goto(x,y)
    down()

def yanse(a):
    pencolor(a)

def jiao(f,g,h,j):
    fillcolor('coral4')
    begin_fill()
    right(95)
    for i in range(1,131):
        fd(1)
        right(f)
    left(25)
    for i in range(1,46):
        fd(1)
        left(g)
        g += 0.1
    for i in range(1,111):
        fd(1)
        right(h)
        if i > 89:
            h += 0.03
            j += 1
    end_fill()

def dingfa(k,l,m,c1,d1,e1,f1,h1,i1,j1,k1,a2,b2,a1,b1):
    fd(10)
    left(60)
    fd(55)
    for i in range(1,99):
        fd(l)
        right(k)
        k += 0.8
        if i > 10 and i <80:
            k = 0.8
            l = 0.5
        elif i>79:
            k = 0.5
            l = 1.1
    right(120)
    for i in range(1,76):
        fd(1)
        right(-0.6)
    left(25)
    for i in range(1,61):
        fd(1)
        left(m)
        m += 0.06
    right(40)
    for i in range(1,46):
        fd(1)
        right(0.3)
    right(120)
    left(50)
    for i in range(1,251):
        fd(c1)
        right(d1)   
        if d1 > 0.8:
            d1 -= 0.5        
        if i > 30 and i<161:
            d1 = 0.5
            if d1 > -0.6:
                d1 -= 0.3
        elif i > 160:
            d1 = -0.7
            c1 = 0.7
    right(125)
    for i in range(1,121):
        fd(e1)
        right(f1)
        if i > 109:
            f1 += 0.01
    left(170)
    for i in range(1,66):
        fd(h1)
        left(i1)
    right(160)
    for i in range(1,76):
        fd(j1)
        right(k1)
        if i > 46:
            j1 += 0.03
    right(80)
    for i in range(1,156):
        if i < 21:
            fd(a2)
            left(b2)
        elif i > 20 and i < 51:
            fd(a2 - 0.2)
            left(b2 + 0.8)
        elif i > 50 and i < 61:
            fd(a2 - 0.2)
            left(b2 + 0.9)
        elif i > 60 and i < 105:
            fd(a2 + 0.9)
            right(b2 - 0.2)
        elif i > 104:
            fd(a2 + 0.5)
            right(b2 + 0.31)
    right(130)
    for i in range(1,36):
        fd(a2)
        left(b2 - 0.15)
    right(45)
    for i in range(1,101):
        if i < 41:
            fd(a2)
            left(b2 - 0.05)
        elif i > 40:
            fd(a2 + 0.2)
            if i == 41:
                left(30)
            else:
                left(b2 - 0.3)
    left(155)
    for i in range(1,201):
        if i < 50:
            fd(a2)
            right(b2 - 0.15)
        elif i > 49 and i < 90:
            fd(a2 + 0.4)
            right(b2 + 0.8)
        elif i >89 and i < 106:
            fd(a2 + 0.5)
            left(b2 + 0.8)
    goto(-87,87)
    for i in range(1,41):
        if i == 1:
            right(20)
        fd(0.9)
        right(b1 - 0.7)
        if i > 15 and i < 26:
            right(0.2)
        elif i > 25:
            left(0.4)
    left(30)
    for i in range(1,16):
        fd(a1)
        right(b1)

def meimao1(e2):
    left(160)
    for i in range(1,6):
        fd(e2)
        left(90)
        e2 += 4
    right(58)
    for i in range(1,11):
        if i < 11:
            fd(4)
    right(19)
    for i in range(1,91):
        fd(0.6)
        left(0.3)
    left(40)
    for i in range(1,71):
        fd(0.5)
        right(0.4 - 0.15)
    left(175)
    for i in range(1,76):  
        if i < 56:
            fd(1)
            right(1)
        else:
            fd(0.5 + 0.5)
            left(0.4 + 0.8)
    for i in range(47):
        fd(1)
        if i == 46:
            left(0.5)
        else:
            left(0.8)
 
def meimao2(f2,g2,h2,i2):
    right(170)
    for i in range(1,6):
        fd(f2)
        right(90)
        f2 += 4
    f2 = 5
    left(70)
    for i in range(1,21):
        if i > 10:
            if i == 11:
                left(17)
            else:
                if i > 16:
                    left(0.2)
                else:
                    fd(f2 - 4)
                    left(g2 + 0.4)
        else:
            fd(f2 - 3.5)
    for i in range(1,33):
        if i < 11:
            fd(f2 - 3)
            right(g2 + 0.2)
            g2 += 0.3
        if i < 16 and i > 10:
            fd(f2 - 3)
            right(g2 + 0.3)
            g2 += 0.65
        elif i > 15:
            fd(f2 - 1.5)
            right(g2 + 0.4)
            g2 -= 0.5
    right(175)
    for i in range(1,80):
        fd(i2)
        left(h2)
        if i > 69:
            if i == 70:
                h2 = 0.5
                i2 = 1.5
            else:
                h2 += 0.32
        else:
            h2 = 0.8
            i2 = 0.5
    for i in range(1,26):
        if i < 11:
            fd(f2 - 3.5)
        else:
            if i == 1:
                left(17)
                g2 = 0.4
            else:
                if i > 24:
                    left(0.2)
                else:
                    fd(f2 - 4)
                    left(g2 + 0.4)
    for i in range(1,21):
        fd(1)
        right(1)

def yanjing1(j2,k2):
    right(20)
    for i in range(1,16):
        fd(0.7)
        right(0.8)
    for i in range(1,51):
        if i < 21:
            j2 += 1
            fd(0.1)
            right(j2)
        elif i > 20 and i < 38:
            if j2 > 0.4:
                j2 -= 1.6
                fd(k2 - 9)
                right(j2)
                k2 += 0.8
    left(100)
    fd(21)
    dot(20)
    fd(20)

def yanjing2(l1,l2,a3):
    left(138)
    for i in range(1,16):
        fd(0.6)
        left(1.2)
    for i in range(1,36):
        if i < 21:
            fd(0.9)
            left(l1)
            l1 += 0.2
        elif i > 20:
            fd(l2 + 0.1)
            left(a3 - 0.6)
            l2 += 0.18
            a3 += 0.19
    left(140)
    fd(29)
    dot(25)
    fd(28)

def cefa1(b3):
    right(17)
    fd(30)
    left(60)
    fd(10)
    left(120)
    fd(12)
    for i in range(1,26):
        fd(0.9)
        left(b3)
        b3 += 0.08

def cefa2(c3):
    for i in range(1,6):
        right(90)
        fd(c3)
        c3 += 8
    fd(20)
    right(12)
    for i in range(1,231):
        if i > 135:
            if i > 170:
                fd(1)
                right(0.2)
            else:
                fd(0.5)
                right(0.4)
        elif i > 105 and i < 136:
            fd(0.3)
            right(1.2)
        elif i > 95 and i < 106:
            fd(0.3)
            right(1.3)
        elif i > 50 and i < 95:
            fd(1.4)
            left(0.2)
        elif i < 51:
            fd(1)
            left(0.71)
    right(140)
    for i in range(1,146):
        if i > 105 and i < 146:
            fd(0.3)
            right(1.2)
        elif i > 95 and i < 106:
            fd(0.3)
            right(1.3)
        elif i > 50 and i < 95:
            fd(1.4)
            left(0.2)
        elif i < 51:
            fd(1)
            left(0.71)
    left(180)
    for i in range(1,41):
            fd(0.3)
            left(1.2)
    right(45)
    for i in range(1,21):
        fd(1)
        right(0.2)
    right(125)
    for i in range(1,31):
        fd(1)
        right(0.68)
    for i in range(1,46):
        fd(1)
        right(0.3)
    for i in range(1,81):
        fd(0.5)
        right(0.4)
    for i in range(1,108):
        fd(0.47)
        right(0.4)

def xbzbbz(d3,e3):
    left(78)
    for i in range(1,51):
        fd(0.9)
        right(0.5)
    for i in range(1,35):
        fd(1)
        right(0.4)
    for i in range(1,19):
        fd(d3)
        right(e3)
        e3 += 0.4
        d3 += 0.1
    taibi(-197,9)
    right(170)
    d3 = 0.4
    e3 = 1
    for i in range(1,83):
        if i > 45:
            d3 = 0.2
            e3 = 0.8
            fd(e3)
            left(d3) 
        else:
            fd(e3)
            left(d3)
            d3 += 0.05
            e3 += 0.02
    taibi(-126,-28)
    left(48)
    yanse('#51150b')
    fillcolor('#51150b')
    begin_fill()
    for i in range(1,46):
        fd(0.8)
        left(0.8)
    left(90)
    for i in range(1,76):
        if i < 7:
            fd(0.7)
            left(1)
        elif i < 69 and i > 6:
            fd(0.5)
            left(0.2)
        else:
            fd(0.7)
            left(1)
    left(83)
    for i in range(1,46):
        fd(0.8)
        left(0.8)
    end_fill()
    taibi(-140,-42)
    yanse('chocolate1')
    right(4)
    fd(12)
    left(48)
    fd(30)
    left(58)
    fd(13)

def lingfa1(f3,g3,h3):
    for i in range(1,5):
        left(90)
        fd(f3)
        f3 += 3
    left(78)
    fd(16)
    left(50)
    fd(5)
    right(60)
    fd(11)
    left(55)
    for i in range(1,26):
        if g3 < 1.63:
            fd(h3)
            right(1.3)
        else:
            fd(h3)
            right(g3)
            g3 -= 0.049
            h3 -= 0.025
    left(110)
    for i in range(1,84):
        fd(0.79)
        left(1.1)
    for i in range(1,71):
        fd(0.5)
        left(1)

def lingfa2(i3):
    for i in range(1,5):
        fd(i3)
        i3 += 3
        right(90)
    left(10)
    fd(9)
    right(45)
    fd(12)
    left(58)
    fd(12)
    right(53)
    for i in range(1,90):
        fd(0.9)
        left(0.5)
    right(9.8)
    fd(10)
    right(76)
    for i in range(1,98):
        fd(0.47)
        left(0.4)
    for i in range(1,71):
        fd(0.5)
        left(0.4)
    right(40)
    for i in range(1,31):
        fd(0.7)
        right(0.5)
    right(140)
    for i in range(1,131):
        if i > 105:
            fd(0.5)
            right(1.2)
        elif i > 50 and i < 106:
            fd(0.7)
            right(1)
        elif i < 51:
            fd(0.85)
            left(0.55)
    left(165)
    for i in range(1,31):
        fd(0.7)
        right(0.5)
    right(145)
    for i in range(1,89):
        fd(0.65)
        left(1.19999999999999999999999999999)
    for i in range(1,91):
        fd(0.85)
        right(1.45)

def lingdang():
    dot(40,'darkorange1')
    taibi(-133,-87)
    right(110)
    for i in range(1,48):
        fd(0.7)
        right(0.52)
    taibi(-133,-95)
    left(25)
    for i in range(1,51):
        fd(0.7)
        right(0.52)
    taibi(-113,-102)
    dot(9,'lightsalmon4')
    yanse('lightsalmon4')
    right(88)
    fd(12)

def xiabanshen():
    fd(80)
    left(72)
    for i in range(1,51):
        fd(1)
        left(1.1)
    taibi(-90,-89)
    right(132)
    for i in range(1,86):
        fd(1)
        left(0.25)
    left(75)
    for i in range(1,48):
        fd(1.1)
        left(0.7)
    left(65)
    fd(63)
    taibi(-45,-135)
    right(80)
    fd(50)
    taibi(19,-90)
    right(142)
    for i in range(1,51):
        fd(1)
        left(1)
    right(15)
    fd(20)
    left(88)
    for i in range(1,61):
        fd(0.9)
        left(0.6)
    left(80)
    fd(12)
    left(70)
    fd(2)
    right(100)
    fd(2)
    for i in range(1,156):
        if i < 41:
            fd(0.99)
            right(0.4)
        elif i > 40 and i < 100:
            if i == 41:
                left(25)
            else:
                fd(1)
                left(1)
        elif i > 100:
            fd(0.7)
            left(0.3)

def weiba(l3,l4):
    right(130)
    for i in range(1,211):
        if i < 101:
            if i < 20:
                fd(0.8)
                right(1.1)
            else:
                fd(1)
                left(0.78)
        elif i < 111 and i > 100:
            if i == 101:
                left(90)
                fd(1)
            elif i == 110:
                fd(1)
                left(90)
            else:
                fd(1)
        else:
            if i > 190:
                fd(0.72)
                left(0.9)
            else:
                fd(1)
                right(0.9)
    taibi(130,0)
    left(146)
    begin_fill()
    for i in range(1,6):
        fd(l3)
        left(90)
        l3 += 3
    right(26)
    for i in range(1,201):
        if i < 81:
            fd(0.8)
            left(1)
        elif i < 101 and i > 80:
            if i == 81:
                right(32)
                fd(0.5)
            elif i == 100:
                left(66)
            else:
                fd(0.5)
        elif i < 121 and i > 100:
            if i == 120:
                fd(0.5)
                right(32)
            elif i == 101:
                left(66)
            else:
                fd(0.5)
        else:
            fd(0.8)
            left(1)
    right(26)
    for i in range(1,6):
        left(90)
        l4 -= 3
        fd(l4)
    end_fill()

hideturtle()

yanse('coral4')
taibi(-200,200)
jiao(-0.6,1.2,0.4,0)

taibi(-130,68)
yanse('chocolate1')
fillcolor('darkorange')
begin_fill()
dingfa(0.5,1.2,1.2,0.8,4,0.6,0.3,0.8,0.3,0.6,0.2,0.5,0.4,1,0.8)
end_fill()

taibi(-80,26)
yanse('black')
fillcolor('white')
begin_fill()
yanjing2(0.5,1,1)
end_fill()

taibi(-87,39)
yanse('goldenrod1')
fillcolor('darkorange')
begin_fill()
meimao1(5)
end_fill()

taibi(-160,27)
yanse('black')
fillcolor('white')
begin_fill()
yanjing1(1,1)
end_fill()

taibi(-155,39)
yanse('goldenrod1')
fillcolor('darkorange')
begin_fill()
meimao2(5,0.4,0.5,1.2)
end_fill()

taibi(-207,49)
yanse('goldenrod1')
fillcolor('darkorange')
begin_fill()
cefa1(1)
end_fill()

taibi(-38,22)
yanse('goldenrod1')
fillcolor('darkorange')
begin_fill()
cefa2(6.5)
end_fill()

taibi(-38,-2)
yanse('chocolate1')
xbzbbz(0.9,2.1)

taibi(-130,-64)
yanse('goldenrod1')
fillcolor('darkorange')
begin_fill()
lingfa1(5,2.6,1.9)
end_fill()

taibi(-108,-64)
fillcolor('darkorange')
begin_fill()
lingfa2(5)
end_fill()

taibi(-115,-94)
yanse('firebrick2')
lingdang()

taibi(-136,-87)
yanse('chocolate1')
xiabanshen()

taibi(55,-65)
yanse('goldenrod1')
weiba(5,20)

done()

ps:本人现在在读初二,有文字表述错误纯属正常,还望各位多多谅解,多多包容噢(有错就指出,不要客气)

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值