用Python画一只小猪佩奇

import turtle as t
class Peppa_pig():
    def __init__(self):
        pass

    def __call__(self, *args, **kwargs):
        self.main()

    def nose(self,x,y):# 鼻子
        t.pu()
        t.goto(x,y)
        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)
                t.fd(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()

    def head(self,x,y):# 头部
        t.color((255,155,192),"pink")
        t.pu()
        t.goto(x,y)
        t.seth(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)
                t.fd(a)
            else:
                a = a - 0.08
                t.lt(3)
                t.fd(a)
        t.end_fill()

    def ears(self,x,y): # 耳朵
        t.color((255,155,192),"pink")
        t.pu()
        t.goto(x,y)
        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()

    def eyes(self,x,y):# 眼睛
        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()

    def cheek(self,x,y): #腮
        t.color((255,155,192))
        t.pu()
        t.goto(x,y)
        t.pd()
        t.seth(0)
        t.begin_fill()
        t.circle(30)
        t.end_fill()

    def mouth(self,x,y): # 嘴
        t.color(239,69,19)
        t.pu()
        t.goto(x,y)
        t.pd()
        t.seth(-80)
        t.circle(30,40)
        t.circle(40,80)

    def body(self,x,y): # 身体
        t.color("red",(255,99,71))
        t.pu()
        t.goto(x,y)
        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()

    def hands(self,x,y): # 手
        t.color((255,155,192))
        t.pu()
        t.goto(x,y)
        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)

    def foot(self,x,y): # 脚
        t.pensize(10)
        t.color((240,128,128))
        t.pu()
        t.goto(x,y)
        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)

    def tail(self,x,y):# 尾巴
        t.pensize(4)
        t.color((255,155,192))
        t.pu()
        t.goto(x,y)
        t.pd()
        t.seth(0)
        t.circle(70,20)
        t.circle(10, 330)
        t.circle(70, 30)

    def setting(self): # 参数设置
        t.pensize(4)
        t.hideturtle()
        t.colormode(255)
        t.color((255,155,192),"pink")
        t.setup(840,500)
        t.speed(10)
    def main(self):
        self.setting()           # 画布
        self.nose(-100,100)      #  鼻子
        self.head(-69,167)       #   头
        self.ears(0,160)         #   耳朵
        self.eyes(0,140)         #  眼睛
        self.cheek(80,10)        #    腮
        self.mouth(-20,30)       #    嘴
        self.body(-32,-8)        #    身体
        self.hands(-56,-45)      #    手
        self.foot(2,-177)        #    脚
        self.tail(148,-155)      #    尾巴
        t.done()              #     结束
if __name__ == '__main__':
    peiqi = Peppa_pig()
    peiqi()

运行结果如下图:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值