python老鼠书和蛇鼠_通过Turtle库在Python中绘制一个鼠年福鼠

turtle库是一个很经典的绘图库,其最初来自于1967年创造的logo编程语言,之后被Python编写放到了Python的内置模块中。网络上有很多借助于turtle绘制精美图像的案例。比如小猪佩奇、皮卡丘、柯基犬等等。趁着新年假期还未结束,今天州的先生(https://zmister.com)为大家带来一个福鼠的绘制。

一、绘制鼠头

首先,咱们(https://zmister.com)把鼠的头给绘制了。鼠头主要是由圆来构成,脸庞是一个大圆,耳朵、眉毛、眼睛、嘴角和鼻子也都是由不同弧度的圆构成。鼠头的绘制代码如下所示:

def head():

turtle.color('black')

# 脸轮廓

turtle.pd() # 落笔

turtle.circle(50) # 画一个半径为50的圆

turtle.pu() # 提笔

# 右耳轮廓

turtle.goto(50,60) # 移动到x=50,y=60的位置

turtle.pd() # 落笔

turtle.circle(30,260) # 画一个半径为30,角度为245的圆弧

turtle.pu() # 提笔

# 右耳耳纹

turtle.goto(30,90)

turtle.pd()

turtle.seth(65)

turtle.circle(-30,70)

turtle.pu()

# 左耳轮廓

turtle.goto(-50,60)

turtle.pd()

turtle.seth(180) # 设置方向为西,

turtle.circle(-30,260)

turtle.pu()

# 左耳耳纹

turtle.goto(-30,90)

turtle.pd()

turtle.seth(120)

turtle.circle(30,70)

turtle.pu()

# 面部五官

# 右侧眉毛

turtle.goto(5,80)

turtle.seth(20)

turtle.pd()

turtle.circle(-25,40)

turtle.pu()

# 左侧眉毛

turtle.goto(-5,80)

turtle.seth(160)

turtle.pd()

turtle.circle(25,40)

turtle.pu()

# 右侧眼睛

turtle.begin_poly()

turtle.goto(8,60)

turtle.seth(45)

turtle.pd()

turtle.circle(-15,120)

turtle.pu()

turtle.goto(8,60)

turtle.seth(40)

turtle.pd()

turtle.circle(-15,100)

turtle.pu()

turtle.end_poly()

# 左侧眼睛

turtle.goto(-8,60)

turtle.seth(135)

turtle.pd()

turtle.circle(15,120)

turtle.pu()

turtle.goto(-8,60)

turtle.seth(140)

turtle.pd()

turtle.circle(15,100)

turtle.pu()

# 鼻子

# 鼻子上瓣

turtle.goto(-6,45)

turtle.seth(70)

turtle.pd()

turtle.circle(-6,150)

turtle.pu()

# 鼻子下瓣

turtle.goto(-6,45)

turtle.seth(-70)

turtle.pd()

turtle.circle(6,150)

turtle.pu()

# 鼻线

turtle.goto(0,40)

turtle.seth(270)

turtle.pd()

turtle.forward(7)

turtle.pu()

# 上嘴线

turtle.seth(200)

turtle.pd()

turtle.circle(-15,60)

turtle.pu()

turtle.goto(0,33)

turtle.seth(-20)

turtle.pd()

turtle.circle(15,60)

turtle.pu()

# 下嘴线

turtle.goto(10,33)

turtle.seth(260)

turtle.pd()

turtle.circle(-15,65)

turtle.pu()

turtle.goto(-10,33)

turtle.seth(280)

turtle.pd()

turtle.circle(15,65)

turtle.pu()

# 牙齿

turtle.goto(4,33)

turtle.seth(270)

turtle.pd()

turtle.forward(4)

turtle.seth(180)

turtle.forward(8)

turtle.seth(90)

turtle.forward(4)

turtle.pu()

# 胡须

turtle.pensize(2)

turtle.goto(30,30)

turtle.seth(8)

turtle.pd()

turtle.circle(-60,40)

turtle.pu()

turtle.goto(30,25)

turtle.seth(-5)

turtle.pd()

turtle.circle(-60,40)

turtle.pu()

turtle.goto(-30,30)

turtle.seth(172)

turtle.pd()

turtle.circle(60,40)

turtle.pu()

turtle.goto(-30,25)

turtle.seth(188)

turtle.pd()

turtle.circle(60,40)

turtle.pu()

# 睫毛

turtle.pensize(1)

turtle.goto(30,58)

turtle.seth(20)

turtle.pd()

turtle.circle(20,20)

turtle.pu()

turtle.pensize(1)

turtle.goto(28,62)

turtle.seth(25)

turtle.pd()

turtle.circle(20,12)

turtle.pu()

turtle.pensize(1)

turtle.goto(-30,58)

turtle.seth(160)

turtle.pd()

turtle.circle(-20,20)

turtle.pu()

turtle.pensize(1)

turtle.goto(-28,62)

turtle.seth(165)

turtle.pd()

turtle.circle(-20,12)

turtle.pu()

运行上述代码,我们可以看到鼠头可以完整地绘制出来了,如下动图所示:

2020020309315441.gif

二、绘制身体

接着,咱们来绘制老鼠的身体。我们(https://zmister.com)画的这个老鼠是一个穿着财神服站立拱手的老鼠,所以它的身体需要重点突出的是服装:

def body():

# 左手

turtle.goto(-25,8)

turtle.seth(240)

turtle.pd()

turtle.circle(150,15)

turtle.seth(270)

turtle.circle(40,15)

turtle.circle(15,65)

turtle.seth(0)

turtle.forward(10)

turtle.circle(10,100)

turtle.seth(90)

turtle.forward(5)

turtle.circle(10,100)

turtle.seth(180)

turtle.forward(10)

turtle.pu()

# 右手

turtle.goto(25,8)

turtle.seth(-60)

turtle.pd()

turtle.circle(-150,15)

turtle.seth(270)

turtle.circle(-40,15)

turtle.circle(-15,65)

turtle.seth(180)

turtle.forward(10)

turtle.circle(-10,100)

turtle.seth(90)

turtle.forward(5)

turtle.circle(-10,100)

turtle.seth(0)

turtle.forward(10)

turtle.pu()

# 袍子

turtle.goto(-30,-48)

turtle.seth(270)

turtle.pd()

turtle.forward(30)

turtle.circle(10,100)

turtle.seth(0)

turtle.forward(38)

turtle.circle(10,100)

turtle.seth(90)

turtle.forward(30)

turtle.pu()

# 领口

turtle.goto(-20,4)

turtle.pd()

turtle.seth(300)

turtle.circle(30,20)

turtle.seth(0)

turtle.forward(25)

turtle.seth(30)

turtle.circle(30,20)

turtle.pu()

# 官带

turtle.goto(-7,-38)

turtle.seth(0)

turtle.pd()

turtle.forward(15)

turtle.pu()

turtle.goto(-30,-54)

turtle.pd()

turtle.forward(60)

turtle.pu()

# 袍子上的波浪

turtle.goto(-30,-80)

turtle.pd()

turtle.seth(90)

turtle.circle(-5,180)

turtle.seth(90)

turtle.circle(-5,180)

turtle.seth(90)

turtle.circle(-5,180)

turtle.seth(90)

turtle.circle(-5,180)

turtle.seth(90)

turtle.circle(-5,180)

turtle.seth(90)

turtle.circle(-5,180)

turtle.pu()

turtle.goto(-25,-85)

turtle.pd()

turtle.seth(90)

turtle.circle(-5,180)

turtle.seth(90)

turtle.circle(-5,180)

turtle.seth(90)

turtle.circle(-5,180)

turtle.seth(90)

turtle.circle(-5,180)

turtle.seth(90)

turtle.circle(-5,180)

turtle.pu()

运行上述代码,我们可以看到老鼠身体的绘制过程,如下动图所示:

2020020309315442.gif

这里先不将其汇合在一起,待几个部件都完成之后,我们再将其组成一个完整地老鼠。

三、绘制手

上面绘制的身体还缺了两只手,对了,还有袍子上的一个大金钱,我们将其补上:

def hands():

turtle.goto(-8, -25)

turtle.pd()

turtle.seth(30)

turtle.forward(10)

turtle.seth(0)

turtle.circle(-10, 50)

turtle.seth(210)

turtle.forward(18)

turtle.back(10)

turtle.seth(-45)

turtle.forward(10)

turtle.back(10)

turtle.seth(30)

turtle.forward(8)

turtle.seth(300)

turtle.forward(5)

turtle.pu()

turtle.goto(0, -75)

turtle.pd()

turtle.seth(0)

turtle.circle(10)

turtle.seth(90)

turtle.circle(10, 90)

turtle.seth(0)

turtle.circle(10, 90)

turtle.seth(270)

turtle.circle(10, 90)

turtle.seth(180)

turtle.circle(10, 90)

turtle.pu()

拱手和金钱没有和身体结合在一起时,暂时看不出上面效果来,如下动图所示:

2020020309315443.gif

四、绘制帽子

老鼠还戴了一顶金钱帽,咱们(zmister.com)现在给它加上:

def hat():

# 画帽子

turtle.goto(-20,98)

turtle.pd()

turtle.seth(80)

turtle.forward(20)

turtle.seth(60)

turtle.circle(-20,140)

turtle.seth(-85)

turtle.forward(18)

turtle.pu()

turtle.goto(-20,98)

turtle.pd()

turtle.seth(80)

turtle.forward(5)

turtle.seth(30)

turtle.forward(22)

turtle.seth(-25)

turtle.forward(24)

turtle.pu()

turtle.goto(0,127)

turtle.pd()

turtle.seth(0)

turtle.circle(5)

turtle.pu()

turtle.goto(0,125)

turtle.pd()

turtle.seth(270)

turtle.forward(10)

turtle.pu()

# 右边抖带

turtle.goto(19,110)

turtle.pd()

turtle.seth(30)

turtle.circle(40,50)

turtle.seth(0)

turtle.circle(10)

turtle.seth(90)

turtle.circle(10,90)

turtle.seth(0)

turtle.circle(10,90)

turtle.seth(270)

turtle.circle(10,90)

turtle.seth(180)

turtle.circle(10,90)

turtle.pu()

# 左边抖带

turtle.goto(-19,110)

turtle.pd()

turtle.seth(150)

turtle.circle(-40,50)

turtle.seth(0)

turtle.circle(10)

turtle.seth(90)

turtle.circle(10,90)

turtle.seth(0)

turtle.circle(10,90)

turtle.seth(270)

turtle.circle(10,90)

turtle.seth(180)

turtle.circle(10,90)

turtle.pu()

帽子主要都是由圆构成,其绘制过程如下动图所示:

2020020309315544.gif

五、绘制尾巴

先不着急为老鼠带上金钱帽,我们还忘记了老鼠有一根长长的尾巴,为它补上吧:

def tail():

turtle.goto(30, -60)

turtle.pd()

turtle.seth(20)

turtle.circle(40, 80)

turtle.circle(-20, 180)

turtle.circle(-10, 90)

尾巴就是两个方向相反弧度不同的圆,效果我们就不演示了。最后将其结合在一起:

if __name__ == '__main__':

head()

body()

hands()

hat()

tail()

turtle.done()

我们就可以看到一个完整的鼠年福鼠绘制过程,如下动图所示:

2020020309315645.gif

总结

以上所述是小编给大家介绍的通过Turtle库在Python中绘制一个鼠年福鼠,希望对大家有帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值