python编写动漫人或物

简介: python编写动漫人或物

废话不多说,直接上图

1. 皮卡丘

import turtle
def getPosition(x, y):
    turtle.setx(x)
    turtle.sety(y)
    print(x, y)
class Pikachu:
    def __init__(self):
        self.t = turtle.Turtle()
        t = self.t
        t.pensize(3)
        t.speed(9)
        t.ondrag(getPosition)
    def noTrace_goto(self, x, y):
        self.t.penup()
        self.t.goto(x, y)
        self.t.pendown()
    def leftEye(self, x, y):
        self.noTrace_goto(x, y)
        t = self.t
        t.seth(0)
        t.fillcolor('#333333')
        t.begin_fill()
        t.circle(22)
        t.end_fill()
        self.noTrace_goto(x, y + 10)
        t.fillcolor('#000000')
        t.begin_fill()
        t.circle(10)
        t.end_fill()
        self.noTrace_goto(x + 6, y + 22)
        t.fillcolor('#ffffff')
        t.begin_fill()
        t.circle(10)
        t.end_fill()
    def rightEye(self, x, y):
        self.noTrace_goto(x, y)
        t = self.t
        t.seth(0)
        t.fillcolor('#333333')
        t.begin_fill()
        t.circle(22)
        t.end_fill()
        self.noTrace_goto(x, y + 10)
        t.fillcolor('#000000')
        t.begin_fill()
        t.circle(10)
        t.end_fill()
        self.noTrace_goto(x - 6, y + 22)
        t.fillcolor('#ffffff')
        t.begin_fill()
        t.circle(10)
        t.end_fill()
    def mouth(self, x, y):
        self.noTrace_goto(x, y)
        t = self.t
        t.fillcolor('#88141D')
        t.begin_fill()
        # 下嘴唇
        l1 = []
        l2 = []
        t.seth(190)
        a = 0.7
        for i in range(28):
            a += 0.1
            t.right(3)
            t.fd(a)
            l1.append(t.position())
        self.noTrace_goto(x, y)
        t.seth(10)
        a = 0.7
        for i in range(28):
            a += 0.1
            t.left(3)
            t.fd(a)
            l2.append(t.position())
        # 上嘴唇
        t.seth(10)
        t.circle(50, 15)
        t.left(180)
        t.circle(-50, 15)
        t.circle(-50, 40)
        t.seth(233)
        t.circle(-50, 55)
        t.left(180)
        t.circle(50, 12.1)
        t.end_fill()
        # 舌头
        self.noTrace_goto(17, 54)
        t.fillcolor('#DD716F')
        t.begin_fill()
        t.seth(145)
        t.circle(40, 86)
        t.penup()
        for pos in reversed(l1[:20]):
            t.goto(pos[0], pos[1] + 1.5)
        for pos in l2[:20]:
            t.goto(pos[0], pos[1] + 1.5)
        t.pendown()
        t.end_fill()
        # 鼻子
        self.noTrace_goto(-17, 94)
        t.seth(8)
        t.fd(4)
        t.back(8)
    # 红脸颊
    def leftCheek(self, x, y):
        turtle.tracer(False)
        t = self.t
        self.noTrace_goto(x, y)
        t.seth(300)
        t.fillcolor('#DD4D28')
        t.begin_fill()
        a = 2.3
        for i in range(120):
            if 0 <= i < 30 or 60 <= i < 90:
                a -= 0.05
                t.lt(3)
                t.fd(a)
            else:
                a += 0.05
                t.lt(3)
                t.fd(a)
        t.end_fill()
        turtle.tracer(True)
    def rightCheek(self, x, y):
        t = self.t
        turtle.tracer(False)
        self.noTrace_goto(x, y)
        t.seth(60)
        t.fillcolor('#DD4D28')
        t.begin_fill()
        a = 2.3
        for i in range(120):
            if 0 <= i < 30 or 60 <= i < 90:
                a -= 0.05
                t.lt(3)
                t.fd(a)
            else:
                a += 0.05
                t.lt(3)
                t.fd(a)
        t.end_fill()
        turtle.tracer(True)
    def colorLeftEar(self, x, y):
        t = self.t
        self.noTrace_goto(x, y)
        t.fillcolor('#000000')
        t.begin_fill()
        t.seth(330)
        t.circle(100, 35)
        t.seth(219)
        t.circle(-300, 19)
        t.seth(110)
        t.circle(-30, 50)
        t.circle(-300, 10)
        t.end_fill()
    def colorRightEar(self, x, y):
        t = self.t
        self.noTrace_goto(x, y)
        t.fillcolor('#000000')
        t.begin_fill()
        t.seth(300)
        t.circle(-100, 30)
        t.seth(35)
        t.circle(300, 15)
        t.circle(30, 50)
        t.seth(190)
        t.circle(300, 17)
        t.end_fill()
    def body(self):
        t = self.t
        t.fillcolor('#F6D02F')
        t.begin_fill()
        # 右脸轮廓
        t.penup()
        t.circle(130, 40)
        t.pendown()
        t.circle(100, 105)
        t.left(180)
        t.circle(-100, 5)
        # 右耳朵
        t.seth(20)
        t.circle(300, 30)
        t.circle(30, 50)
        t.seth(190)
        t.circle(300, 36)
        # 上轮廓
        t.seth(150)
        t.circle(150, 70)
        # 左耳朵
        t.seth(200)
        t.circle(300, 40)
        t.circle(30, 50)
        t.seth(20)
        t.circle(300, 35)
        # print(t.pos())
        # 左脸轮廓
        t.seth(240)
        t.circle(105, 95)
        t.left(180)
        t.circle(-105, 5)
        # 左手
        t.seth(210)
        t.circle(500, 18)
        t.seth(200)
        t.fd(10)
        t.seth(280)
        t.fd(7)
        t.seth(210)
        t.fd(10)
        t.seth(300)
        t.circle(10, 80)
        t.seth(220)
        t.fd(10)
        t.seth(300)
        t.circle(10, 80)
        t.seth(240)
        t.fd(12)
        t.seth(0)
        t.fd(13)
        t.seth(240)
        t.circle(10, 70)
        t.seth(10)
        t.circle(10, 70)
        t.seth(10)
        t.circle(300, 18)
        t.seth(75)
        t.circle(500, 8)
        t.left(180)
        t.circle(-500, 15)
        t.seth(250)
        t.circle(100, 65)
        # 左脚
        t.seth(320)
        t.circle(100, 5)
        t.left(180)
        t.circle(-100, 5)
        t.seth(220)
        t.circle(200, 20)
        t.circle(20, 70)
        t.seth(60)
        t.circle(-100, 20)
        t.left(180)
        t.circle(100, 20)
        t.seth(300)
        t.circle(10, 70)
        t.seth(60)
        t.circle(-100, 20)
        t.left(180)
        t.circle(100, 20)
        t.seth(10)
        t.circle(100, 60)
        # 横向
        t.seth(180)
        t.circle(-100, 10)
        t.left(180)
        t.circle(100, 10)
        t.seth(5)
        t.circle(100, 10)
        t.circle(-100, 40)
        t.circle(100, 35)
        t.left(180)
        t.circle(-100, 10)
        # 右脚
        t.seth(290)
        t.circle(100, 55)
        t.circle(10, 50)
        t.seth(120)
        t.circle(100, 20)
        t.left(180)
        t.circle(-100, 20)
        t.seth(0)
        t.circle(10, 50)
        t.seth(110)
        t.circle(100, 20)
        t.left(180)
        t.circle(-100, 20)
        t.seth(30)
        t.circle(20, 50)
        t.seth(100)
        t.circle(100, 40)
        # 右侧身体轮廓
        t.seth(200)
        t.circle(-100, 5)
        t.left(180)
        t.circle(100, 5)
        t.left(30)
        t.circle(100, 75)
        t.right(15)
        t.circle(-300, 21)
        t.left(180)
        t.circle(300, 3)
        # 右手
        t.seth(43)
        t.circle(200, 60)
        t.right(10)
        t.fd(10)
        t.circle(5, 160)
        t.seth(90)
        t.circle(5, 160)
        t.seth(90)
        t.fd(10)
        t.seth(90)
        t.circle(5, 180)
        t.fd(10)
        t.left(180)
        t.left(20)
        t.fd(10)
        t.circle(5, 170)
        t.fd(10)
        t.seth(240)
        t.circle(50, 30)
        t.end_fill()
        self.noTrace_goto(130, 125)
        t.seth(-20)
        t.fd(5)
        t.circle(-5, 160)
        t.fd(5)
        # 手指纹
        self.noTrace_goto(166, 130)
        t.seth(-90)
        t.fd(3)
        t.circle(-4, 180)
        t.fd(3)
        t.seth(-90)
        t.fd(3)
        t.circle(-4, 180)
        t.fd(3)
        # 尾巴
        self.noTrace_goto(168, 134)
        t.fillcolor('#F6D02F')
        t.begin_fill()
        t.seth(40)
        t.fd(200)
        t.seth(-80)
        t.fd(150)
        t.seth(210)
        t.fd(150)
        t.left(90)
        t.fd(100)
        t.right(95)
        t.fd(100)
        t.left(110)
        t.fd(70)
        t.right(110)
        t.fd(80)
        t.left(110)
        t.fd(30)
        t.right(110)
        t.fd(32)
        t.right(106)
        t.circle(100, 25)
        t.right(15)
        t.circle(-300, 2)
        ##############
        # print(t.pos())
        t.seth(30)
        t.fd(40)
        t.left(100)
        t.fd(70)
        t.right(100)
        t.fd(80)
        t.left(100)
        t.fd(46)
        t.seth(66)
        t.circle(200, 38)
        t.right(10)
        t.fd(10)
        t.end_fill()
        # 尾巴花纹
        t.fillcolor('#923E24')
        self.noTrace_goto(126.82, -156.84)
        t.begin_fill()
        t.seth(30)
        t.fd(40)
        t.left(100)
        t.fd(40)
        t.pencolor('#923e24')
        t.seth(-30)
        t.fd(30)
        t.left(140)
        t.fd(20)
        t.right(150)
        t.fd(20)
        t.left(150)
        t.fd(20)
        t.right(150)
        t.fd(20)
        t.left(130)
        t.fd(18)
        t.pencolor('#000000')
        t.seth(-45)
        t.fd(67)
        t.right(110)
        t.fd(80)
        t.left(110)
        t.fd(30)
        t.right(110)
        t.fd(32)
        t.right(106)
        t.circle(100, 25)
        t.right(15)
        t.circle(-300, 2)
        t.end_fill()
        # 帽子、眼睛、嘴巴、脸颊
        self.cap(-134.07, 147.81)
        self.mouth(-5, 25)
        self.leftCheek(-126, 32)
        self.rightCheek(107, 63)
        self.colorLeftEar(-250, 100)
        self.colorRightEar(140, 270)
        self.leftEye(-85, 90)
        self.rightEye(50, 110)
        t.hideturtle()
    def cap(self, x, y):
        self.noTrace_goto(x, y)
        t = self.t
        t.fillcolor('#CD0000')
        t.begin_fill()
        t.seth(200)
        t.circle(400, 7)
        t.left(180)
        t.circle(-400, 30)
        t.circle(30, 60)
        t.fd(50)
        t.circle(30, 45)
        t.fd(60)
        t.left(5)
        t.circle(30, 70)
        t.right(20)
        t.circle(200, 70)
        t.circle(30, 60)
        t.fd(70)
        # print(t.pos())
        t.right(35)
        t.fd(50)
        t.circle(8, 100)
        t.end_fill()
        self.noTrace_goto(-168.47, 185.52)
        t.seth(36)
        t.circle(-270, 54)
        t.left(180)
        t.circle(270, 27)
        t.circle(-80, 98)
        t.fillcolor('#444444')
        t.begin_fill()
        t.left(180)
        t.circle(80, 197)
        t.left(58)
        t.circle(200, 45)
        t.end_fill()
        self.noTrace_goto(-58, 270)
        t.pencolor('#228B22')
        t.dot(35)
        self.noTrace_goto(-30, 280)
        t.fillcolor('#228B22')
        t.begin_fill()
        t.seth(100)
        t.circle(30, 180)
        t.seth(190)
        t.fd(15)
        t.seth(100)
        t.circle(-45, 180)
        t.right(90)
        t.fd(15)
        t.end_fill()
        t.pencolor('#000000')
    def start(self):
        self.body()
def main():
    print('Painting the Pikachu... ')
    turtle.screensize(800, 600)
    turtle.title('Pikachu')
    pikachu = Pikachu()
    pikachu.start()
    turtle.mainloop()
if __name__ == '__main__':
    main()

2. 小樱的魔法阵

import turtle as t
import time
def tcyuan(x, y, r):
    t.fillcolor("black")
    t.begin_fill()
    t.seth(0)
    y = y - r
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.circle(r)
    t.end_fill()
def yuan(x, y, r):
    t.seth(0)
    y = y - r
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.circle(r)
def yueliang():
    R = 110 - 1
    r = R - 22 - 1
    # 月亮填充
    t.penup()
    t.goto(-350 + 2 * R, 0)
    t.seth(90)
    t.fillcolor("black")
    t.begin_fill()
    t.circle(R, 359)
    t.left(90)
    t.fd(2)
    t.left(90)
    t.circle(-r, 359)
    t.left(90)
    t.fd(2)
    t.pendown()
    t.end_fill()
    # 轮廓
    yuan(-350 + R, 0, R)
    yuan(-350 + 44 + r - 2, 0, r - 2)
def zhixian(R, r, count, jiaodu):
    t.seth(90 + jiaodu)
    #    t.goto(0, 0)
    for i in range(count):
        t.penup()
        t.goto(0, 0)
        t.fd(r)
        t.pendown()
        t.fd(R - r)
        t.left(360 / count)
def zfx(R, r):
    jiange = 10
    #    t.pensize(jiange)
    t.seth(90)
    big = pow((R ** 2) * 2, 0.5)
    small = big - 2 * jiange
    for i in range(13):
        # 大线
        t.penup()
        t.goto(0, 0)
        t.fd(R)
        t.pendown()
        t.right(135)
        t.fd(big)
        # 小线
        t.left(135)
        t.penup()
        t.goto(0, 0)
        t.fd(pow((small ** 2) / 2, 0.5))
        t.pendown()
        t.right(135)
        t.fd(small)
        # 粗线
        t.pensize(8)
        t.pencolor("black")
        t.left(135)
        t.penup()
        t.goto(0, 0)
        t.fd((R + pow((small ** 2) / 2, 0.5)) / 2)
        t.pendown()
        t.right(135)
        t.fd((big + small) / 2)
        t.pensize(2)
        t.pencolor("yellow")
        t.seth(90 + i * 30)
    else:
        # 大线
        t.penup()
        t.goto(0, 0)
        t.fd(R)
        t.right(135)
        t.fd(big / 2)
        t.pendown()
        t.fd(big / 2)
        # 小线
        t.left(135)
        t.penup()
        t.goto(0, 0)
        t.fd(pow((small ** 2) / 2, 0.5))
        t.right(135)
        t.fd(small / 2)
        t.pendown()
        t.fd(small / 2)
        # 粗线
        t.pensize(8)
        t.pencolor("black")
        t.left(135)
        t.penup()
        t.goto(0, 0)
        t.fd((R + pow((small ** 2) / 2, 0.5)) / 2)
        t.right(135)
        t.fd((big + small) / 2 / 2)
        t.pendown()
        t.fd((big + small) / 2 / 2)
        t.pensize(2)
        t.pencolor("yellow")
        t.seth(90 + i * 30)
def wjx(r, jiaodu):
    t.fillcolor("black")
    t.penup()
    t.goto(0, 0)
    t.seth(90 + jiaodu)
    t.fd(r)
    t.pendown()
    t.right(18)
    t.begin_fill()
    for i in range(5):
        t.right(144)
        t.forward(144)
        t.left(72)
        t.forward(144)
    t.end_fill()
    if jiaodu != 0:
        t.seth(90 + jiaodu)
        for i in range(1, 6):
            t.penup()
            t.goto(0, 0)
            t.left(72)
            t.pendown()
            t.fd(r)
def xingzuo():
    r = 250
    t.penup()
    t.goto(20, -35)
    t.seth(-45)
    t.fd(r)
    t.pendown()
    xz = ['♒', '♓', '♈', '♉', '♌', '♍', '♎', '♏']
    for i in range(4):
        t.write(xz[i], font=("", 20, ""))
        t.penup()
        t.right(90)
        t.circle(-300, 30)
        t.left(90)
        t.pendown()
    t.penup()
    t.goto(-r / 4 + 10, 5)
    t.seth(135)
    t.fd(r)
    for i in range(4, 8):
        t.write(xz[i], font=("", 20, ""))
        t.penup()
        t.right(90)
        t.circle(-300, 30)
        t.left(90)
        t.pendown()
def dxnb(s):
    t.penup()
    t.fd(-19)
    t.left(90)
    t.fd(2)
    t.pendown()
    t.write(s, font=["KaiTi", 30, "bold"])
def taiyang():
    def haicao(r, i):
        # 海藻
        t.fillcolor("black")
        t.penup()
        if i == 0:
            t.goto(256, r)
        elif i == 1:
            t.goto(256 - r, 0)
        else:
            t.goto(256, -r)
        t.pendown()
        t.begin_fill()
        t.seth(2 + i * 90)
        t.circle(r / 2, 105)
        t.left(10)
        t.circle(-r / 3, 90)
        t.circle(r / 3, 60)
        t.left(20)
        t.circle(r / 3, -80)
        t.left(50)
        t.circle(-r + 10, -40)
        t.right(30)
        t.circle(r / 2 + 10, -50)
        t.penup()
        if i == 0:
            t.goto(256, r)
        elif i == 1:
            t.goto(256 - r, 0)
        else:
            t.goto(256, -r)
        t.pendown()
        t.end_fill()
        t.seth(2 + i * 90)
        t.circle(r / 2, 105)
        t.left(10)
        t.circle(-r / 3, 90)
        t.begin_fill()
        t.circle(r / 3, 60)
        t.left(20)
        t.circle(r / 3, -80)
        t.left(50)
        t.circle(-r + 10, -40)
        t.right(30)
        t.circle(r / 2 + 10, -50)
        t.right(30)
        t.circle(r / 2 - 2, 110)
        t.circle(-r / 3, 70)
        t.left(7)
        t.circle(r / 3, 85)
        t.end_fill()
        t.penup()
        if i == 0:
            t.goto(256, r)
            t.pendown()
            t.seth(180 - (2 + i * 90))
            t.circle(-(r / 2), 105)
        elif i == 1:
            t.goto(256 - r, 0)
            t.pendown()
            t.seth(- (2 + i * 90))
            t.circle(-(r / 2), 105)
        else:
            t.goto(256, -r)
            t.pendown()
            t.seth(180 - (2 + i * 90))
            t.circle(-(r / 2), 105)
        t.begin_fill()
        t.left(-10)
        t.circle(-(-r / 3), 90)
        t.circle(-(r / 3), 60)
        t.left(-20)
        t.circle(-(r / 3), -80)
        t.left(-50)
        t.circle(-(-r + 10), -40)
        t.right(-30)
        t.circle(-(r / 2 + 10), -50)
        t.end_fill()
        t.penup()
        if i == 0:
            t.goto(256, r)
            t.pendown()
            t.seth(180 - (2 + i * 90))
            t.circle(-(r / 2), 105)
        elif i == 1:
            t.goto(256 - r, 0)
            t.pendown()
            t.seth(- (2 + i * 90))
            t.circle(-(r / 2), 105)
        else:
            t.goto(256, -r)
            t.pendown()
            t.seth(180 - (2 + i * 90))
            t.circle(-(r / 2), 105)
        t.pendown()
        t.left(-10)
        t.circle(-(-r / 3), 90)
        t.circle(-(r / 3), 60)
        t.left(-20)
        t.begin_fill()
        t.circle(-(r / 3), -80)
        t.left(-50)
        t.circle(-(-r + 10), -40)
        t.right(-30)
        t.circle(-(r / 2 + 10), -50)
        t.right(-30)
        t.circle(-(r / 2 - 2), 110)
        t.circle(-(-r / 3), 70)
        t.left(-7)
        t.circle(-(r / 3), 85)
        t.end_fill()
    def xhaicao(r, i):
        t.penup()
        t.goto(256 + r, 0)
        t.seth(-90)
        t.circle(-r, 20)
        t.pendown()
        t.begin_fill()
        t.seth(30)
        t.circle(-r / 3, 100)
        t.circle(r / 6, 140)
        t.circle(-r / 11, 100)
        t.left(80)
        t.circle(-r / 2, -30)
        t.circle(r / 4, -140)
        t.circle(-r / 3, -60)
        t.end_fill()
        t.penup()
        t.goto(256 + r, 0)
        t.seth(-90)
        t.circle(-r, 30)
        t.pendown()
        t.seth(45)
        t.circle(-r / 4, 100)
        t.right(20)
        t.circle(r / 4, 140)
        t.right(10)
        t.circle(-r / 11, 90)
        t.penup()
        t.goto(256 + r, 0)
        t.seth(90)
        t.circle(r, 20)
        t.pendown()
        t.begin_fill()
        t.seth(-30)
        t.circle(-(-r / 3), 100)
        t.circle(-(r / 6), 140)
        t.circle(-(-r / 11), 100)
        t.left(-80)
        t.circle(-(-r / 2), -30)
        t.circle(-(r / 4), -140)
        t.circle(-(-r / 3), -60)
        t.end_fill()
        t.penup()
        t.goto(256 + r, 0)
        t.seth(90)
        t.circle(r, 30)
        t.pendown()
        t.seth(-45)
        t.circle(-(-r / 4), 100)
        t.right(-25)
        t.circle(-(r / 4), 140)
        t.right(-10)
        t.circle(-(-r / 11), 90)
    r = 50
    # 海藻
    haicao(r, 0)
    haicao(r, 1)
    haicao(r, 2)
    xhaicao(r, 3)
    # 大三角形
    t.fillcolor("black")
    for i in range(1, 4):
        temp = 3
        t.penup()
        t.goto(256, 0)
        t.seth(i * 90)
        t.pendown()
        t.begin_fill()
        t.right(22.5)
        t.fd(r)
        if i == 1:
            t.goto(256, 3 * r - temp)
            t.goto(256, 0)
            t.seth(i * 90 + 22.5)
            t.fd(r)
            t.goto(256, 3 * r - temp)
        elif i == 2:
            t.goto(256 - 3 * r + temp, 0)
            t.goto(256, 0)
            t.seth(i * 90 + 22.5)
            t.fd(r)
            t.goto(256 - 3 * r + temp, 0)
        else:
            t.goto(256, -3 * r + temp)
            t.goto(256, 0)
            t.seth(i * 90 + 22.5)
            t.fd(r)
            t.goto(256, -3 * r + temp)
        t.end_fill()
    # 小三角形
    x = pow(((2 * r) ** 2) / 2, 0.5) - 8
    for i in range(1, 5):
        t.penup()
        t.goto(256, 0)
        t.seth(i * 90)
        t.pendown()
        t.begin_fill()
        t.right(22.5)
        t.fd(r)
        if i == 1:
            t.goto(256 + x, x)
            t.goto(256, 0)
            t.right(45)
            t.fd(r)
            t.goto(256 + x, x)
        elif i == 2:
            t.goto(256 - x, x)
            t.goto(256, 0)
            t.right(45)
            t.fd(r)
            t.goto(256 - x, x)
        elif i == 3:
            t.goto(256 - x, -x)
            t.goto(256, 0)
            t.right(45)
            t.fd(r)
            t.goto(256 - x, -x)
        else:
            t.goto(256 + x, -x)
            t.goto(256, 0)
            t.right(45)
            t.fd(r)
            t.goto(256 + x, -x)
        t.end_fill()
    # 圆
    #    t.begin_fill()
    tcyuan(256, 0, r)
# 初始化
t.setup(1500, 800, 0, 0)
t.speed(0)
t.bgcolor("black")
t.pencolor("yellow")
t.pensize(2)
# 最大的圆
yuan(0, 0, 350)
yuan(0, 0, 325)
yuan(0, 0, 321)
yuan(0, 0, 306)
zhixian(321, 306, 72, 0)
# 小圆
yuan(0, 0, 204)
yuan(0, 0, 200)
yuan(0, 0, 186)
zhixian(200, 186, 72, 0)
# 正方形边框以及直线
zhixian(290, 213, 12, 0)
zhixian(248, 205, 12, 15)
zfx(306, 204)
# 里五角星
wjx(200, 36)
# 月亮
yueliang()
# 太阳
taiyang()
# 最小圆
tcyuan(0, 328, 22)
dxnb("北")
tcyuan(0, -328, 22)
dxnb("南")
tcyuan(-328, 0, 22)
dxnb("西")
tcyuan(328, 0, 22)
dxnb("東")
xingzuo()
#展示
time.sleep(30)   #展示时间30s

3. 小猪佩奇

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()

4. 类似网页皮卡丘

from turtle import *
import time
screensize(650, 500, "yellow")
setup(800, 550)
penup()
goto(-185, 65)
pendown()
pensize(5)
color("black")
begin_fill()
circle(50, 360)
end_fill()
penup()
goto(-210, 110)
pendown()
pensize(5)
color("white")
begin_fill()
circle(20, 360)
end_fill()
penup()
goto(185, 65)
pendown()
pensize(5)
color("black")
begin_fill()
circle(50, 360)
end_fill()
penup()
goto(160, 110)
pendown()
pensize(5)
color("white")
begin_fill()
circle(20, 360)
end_fill()
penup()
goto(-270, -130)
pendown()
color("red")
begin_fill()
circle(75, 360)
end_fill()
penup()
goto(270, -130)
pendown()
color("red")
begin_fill()
circle(75, 360)
end_fill()
penup()
color("black")
begin_fill()
pensize()
goto(0, 30)
seth(30)
pendown()
fd(30)
penup()
seth(120)
pendown()
circle(30, 120)
penup()
seth(150)
pendown()
color("black")
fd(-30)
end_fill()
penup()
goto(0, 5)
seth(190)
pensize(3)
pendown()
fd(130)
seth(150)
circle(-30, 50)
penup()
goto(0, 5)
seth(-10)
pensize(3)
pendown()
fd(130)
seth(30)
circle(30, 50)
penup()
goto(-100, -15)
seth(290)
pendown()
fd(180)
penup()from turtle import*
import time
# 设置抬笔跳跃
def my_goto(x, y):
    penup()
    goto(x, y)
    pendown()
# 绘制项圈
def collar():
    color("red")
    pencolor("black")
    begin_fill()
    my_goto(-100, 0)
    lt(10)
    circle(-800, 20)
    rt(70)
    fd(10)
    goto(-100, -10)
    goto(-100, 0)
    end_fill()
# 绘制大脸
def face():
    color("sky blue")
    pencolor("black")
    begin_fill()
    lt(46)
    circle(251,-293)
    lt(10)
    circle(200,273)
    end_fill()
# 绘制眼睛
def eyes():
    # 绘制左眼
    my_goto(-45,338)
    color("white")
    begin_fill()
    pencolor("black")
    tracer(False)
    a = 3
    rt(45)
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            a -= 0.05
            lt(3)
            fd(a)
        else:
            a += 0.05
            lt(3)
            fd(a)
    tracer(True)
    end_fill()
    # 绘制左眼球
    color("black")
    begin_fill()
    pencolor("black")
    my_goto(-5, 320)
    circle(15)
    end_fill()
    color("white")
    begin_fill()
    my_goto(10, 318)
    circle(5)
    end_fill()
    # 绘制右眼
    my_goto(45,338)
    color("white")
    begin_fill()
    pencolor("black")
    tracer(False)
    a = 3
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            a -= 0.05
            lt(3)
            fd(a)
        else:
            a += 0.05
            lt(3)
            fd(a)
    tracer(True)
    end_fill()
    # 绘制右黑眼球
    color("black")
    begin_fill()
    pencolor("black")
    my_goto(50,320)
    circle(15)
    end_fill()
    color("white")
    begin_fill()
    my_goto(54, 318)
    circle(5)
    end_fill()
# 绘制鼻子
def nose():
    pensize(3)
    color("red")
    begin_fill()
    pencolor("black")
    my_goto(4,272)
    circle(35)
    end_fill()
    # 绘制鼻尖
    color("white")
    begin_fill()
    my_goto(33, 290)
    circle(5)
    end_fill()
# 绘制嘴巴
def mouse():
    pencolor("black")
    my_goto(38,202)
    goto(38,50)
    my_goto(-110,160)
    lt(15)
    circle(150,150)
# 绘制胡子
def beard():
    pencolor("black")
    pensize(4)
    # 绘制左边的胡子
    my_goto(-120,200)
    goto(-20,180)
    my_goto(-120, 170)
    goto(-20,160)
    my_goto(-120, 130)
    goto(-20,140)
    # 绘制右边的胡子
    my_goto(196,200)
    goto(96,180)
    my_goto(196, 170)
    goto(96,160)
    my_goto(196, 130)
    goto(96,140)
# 绘制猫身
def body():
    color("sky blue")
    begin_fill()
    pencolor("black")
    # 左半边的身子
    my_goto(-100, -10)
    rt(35)
    fd(-180)
    circle(-50,-180)
    fd(-80)
    lt(50)
    fd(-60)
    fd(190)
    rt(30)
    fd(60)
    lt(115)
    fd(80)
    lt(10)
    fd(65)
    #机器猫的裤裆
    lt(90)
    circle(-35,190)
    lt(90)
    fd(65)
    rt(-10)
    fd(80)
    # 右半边的身子
    lt(115)
    fd(60)
    rt(35)
    fd(190)
    fd(-60)
    rt(60)
    fd(180)
    circle(50,180)
    goto(185,-10)
    goto(-100, -10)
    end_fill()
# 绘制猫肚子
def belly():
    color("white")
    pencolor("black")
    begin_fill()
    my_goto(-80,-10)
    seth(0)
    lt(80)
    circle(-120, -200)
    end_fill()
    my_goto(-10,-70)
    seth(0)
    lt(80)
    circle(-50, -200)
    goto(-10,-70)
# 绘制铃铛
def bell():
    my_goto(38,-10)
    seth(180)
    color("yellow")
    begin_fill()
    pencolor("black")
    circle(20)
    end_fill()
# 绘制双手
def hand():
    # 绘制左手
    color("white")
    begin_fill()
    pencolor("black")
    my_goto(-230,-125)
    circle(60)
    end_fill()
    # 绘制右手
    color("white")
    begin_fill()
    pencolor("black")
    my_goto(380, 50)
    circle(60)
    end_fill()
# 绘制双脚
def foot():
    # 绘制左脚
    color("white")
    begin_fill()
    pencolor("black")
    my_goto(-10, -330)
    seth(0)
    fd(10)
    circle(-35, 180)
    fd(140)
    circle(-35, 180)
    # fd(10)
    goto(-10,-330)
    end_fill()
    # 绘制右脚
    color("white")
    begin_fill()
    pencolor("black")
    my_goto(220, -330)
    seth(0)
    fd(10)
    circle(-35, 180)
    fd(140)
    circle(-35, 180)
    # fd(10)
    goto(220,-330)
    end_fill()
# 署名及日期落款
def auther_name():
    my_goto(380, 150)
    write('Go! GO! ---2021/12/26', font=("Bradley Hand ITC", 18, "bold"))
# 调用函数
def main():
    hideturtle()
    speed(2)
    pensize(3)
    collar()
    face()
    eyes()
    nose()
    mouse()
    beard()
    body()
    belly()
    bell()
    hand()
    foot()
    auther_name()
    exitonclick()
if __name__ == '__main__':
    main()
time.sleep(20)   #停止20s
goto(100, -15)
seth(-110)
pendown()
fd(180)
circle(-40, 140)
time.sleep(20)  #停20秒

5.哆啦A梦

from turtle import*
import time
# 设置抬笔跳跃
def my_goto(x, y):
    penup()
    goto(x, y)
    pendown()
# 绘制项圈
def collar():
    color("red")
    pencolor("black")
    begin_fill()
    my_goto(-100, 0)
    lt(10)
    circle(-800, 20)
    rt(70)
    fd(10)
    goto(-100, -10)
    goto(-100, 0)
    end_fill()
# 绘制大脸
def face():
    color("sky blue")
    pencolor("black")
    begin_fill()
    lt(46)
    circle(251,-293)
    lt(10)
    circle(200,273)
    end_fill()
# 绘制眼睛
def eyes():
    # 绘制左眼
    my_goto(-45,338)
    color("white")
    begin_fill()
    pencolor("black")
    tracer(False)
    a = 3
    rt(45)
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            a -= 0.05
            lt(3)
            fd(a)
        else:
            a += 0.05
            lt(3)
            fd(a)
    tracer(True)
    end_fill()
    # 绘制左眼球
    color("black")
    begin_fill()
    pencolor("black")
    my_goto(-5, 320)
    circle(15)
    end_fill()
    color("white")
    begin_fill()
    my_goto(10, 318)
    circle(5)
    end_fill()
    # 绘制右眼
    my_goto(45,338)
    color("white")
    begin_fill()
    pencolor("black")
    tracer(False)
    a = 3
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            a -= 0.05
            lt(3)
            fd(a)
        else:
            a += 0.05
            lt(3)
            fd(a)
    tracer(True)
    end_fill()
    # 绘制右黑眼球
    color("black")
    begin_fill()
    pencolor("black")
    my_goto(50,320)
    circle(15)
    end_fill()
    color("white")
    begin_fill()
    my_goto(54, 318)
    circle(5)
    end_fill()
# 绘制鼻子
def nose():
    pensize(3)
    color("red")
    begin_fill()
    pencolor("black")
    my_goto(4,272)
    circle(35)
    end_fill()
    # 绘制鼻尖
    color("white")
    begin_fill()
    my_goto(33, 290)
    circle(5)
    end_fill()
# 绘制嘴巴
def mouse():
    pencolor("black")
    my_goto(38,202)
    goto(38,50)
    my_goto(-110,160)
    lt(15)
    circle(150,150)
# 绘制胡子
def beard():
    pencolor("black")
    pensize(4)
    # 绘制左边的胡子
    my_goto(-120,200)
    goto(-20,180)
    my_goto(-120, 170)
    goto(-20,160)
    my_goto(-120, 130)
    goto(-20,140)
    # 绘制右边的胡子
    my_goto(196,200)
    goto(96,180)
    my_goto(196, 170)
    goto(96,160)
    my_goto(196, 130)
    goto(96,140)
# 绘制猫身
def body():
    color("sky blue")
    begin_fill()
    pencolor("black")
    # 左半边的身子
    my_goto(-100, -10)
    rt(35)
    fd(-180)
    circle(-50,-180)
    fd(-80)
    lt(50)
    fd(-60)
    fd(190)
    rt(30)
    fd(60)
    lt(115)
    fd(80)
    lt(10)
    fd(65)
    #机器猫的裤裆
    lt(90)
    circle(-35,190)
    lt(90)
    fd(65)
    rt(-10)
    fd(80)
    # 右半边的身子
    lt(115)
    fd(60)
    rt(35)
    fd(190)
    fd(-60)
    rt(60)
    fd(180)
    circle(50,180)
    goto(185,-10)
    goto(-100, -10)
    end_fill()
# 绘制猫肚子
def belly():
    color("white")
    pencolor("black")
    begin_fill()
    my_goto(-80,-10)
    seth(0)
    lt(80)
    circle(-120, -200)
    end_fill()
    my_goto(-10,-70)
    seth(0)
    lt(80)
    circle(-50, -200)
    goto(-10,-70)
# 绘制铃铛
def bell():
    my_goto(38,-10)
    seth(180)
    color("yellow")
    begin_fill()
    pencolor("black")
    circle(20)
    end_fill()
# 绘制双手
def hand():
    # 绘制左手
    color("white")
    begin_fill()
    pencolor("black")
    my_goto(-230,-125)
    circle(60)
    end_fill()
    # 绘制右手
    color("white")
    begin_fill()
    pencolor("black")
    my_goto(380, 50)
    circle(60)
    end_fill()
# 绘制双脚
def foot():
    # 绘制左脚
    color("white")
    begin_fill()
    pencolor("black")
    my_goto(-10, -330)
    seth(0)
    fd(10)
    circle(-35, 180)
    fd(140)
    circle(-35, 180)
    # fd(10)
    goto(-10,-330)
    end_fill()
    # 绘制右脚
    color("white")
    begin_fill()
    pencolor("black")
    my_goto(220, -330)
    seth(0)
    fd(10)
    circle(-35, 180)
    fd(140)
    circle(-35, 180)
    # fd(10)
    goto(220,-330)
    end_fill()
# 署名及日期落款
def auther_name():
    my_goto(380, 150)
    write('Go! GO! ---2021/12/26', font=("Bradley Hand ITC", 18, "bold"))
# 调用函数
def main():
    hideturtle()
    speed(2)
    pensize(3)
    collar()
    face()
    eyes()
    nose()
    mouse()
    beard()
    body()
    belly()
    bell()
    hand()
    foot()
    auther_name()
    exitonclick()
if __name__ == '__main__':
    main()
time.sleep(20)   #停止20s

6. 螺旋线

import turtle
import time
t = turtle.Pen()
for i in range(360):
    t.forward(i)
    t.left(59)
time.sleep(30)

感谢大家,点赞,收藏,关注,评论!

目录
相关文章
|
6月前
|
人工智能 IDE Java
python入门(四)python眼里的图像
python入门(四)python眼里的图像
|
2月前
|
Python
用python进行视频剪辑源码
这篇文章提供了一个使用Python进行视频剪辑的源码示例,通过结合moviepy和pydub库来实现视频的区间切割和音频合并。
61 2
|
3月前
|
存储 Python
【python】Python飞机大战游戏开发(源码)【独一无二】
【python】Python飞机大战游戏开发(源码)【独一无二】
|
4月前
|
Python
python编写一个坦克大战
【7月更文挑战第6天】
238 6
|
5月前
|
JavaScript 前端开发 Ruby
那些让人惊叹的Python代码
那些让人惊叹的Python代码
25 0
|
5月前
|
数据采集 人工智能 Python
好玩的 Python 代码
好玩的 Python 代码
49 0
|
6月前
|
Python
Python小姿势 - # 如何用Python制作一个简易计算器
Python小姿势 - # 如何用Python制作一个简易计算器
|
6月前
|
Python
Python小姿势 - # 如何利用Python制作你自己的计算器
Python小姿势 - # 如何利用Python制作你自己的计算器
|
存储 安全 Linux
Python入门项目——飞机大战(一)
Python入门项目——飞机大战
260 0
Python入门项目——飞机大战(一)
|
数据库 Python
python 制作简易西班牙语翻译软件
制作简易西班牙语翻译软件,python tk
python 制作简易西班牙语翻译软件