经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
如何利用python绘制可爱皮卡丘?
来源:悟空问答  作者:小小猿爱嘻嘻  时间:2019/3/29 10:50:08  对本文有异议

这个非常简单,主要用到turtle这个模块,一个绘图函数库,可以快速绘制平面二维图形,下面我简单介绍一下实现过程,主要分为鼻子、眼睛、脸、嘴巴这4个部分,实验环境win10+python3.6+pycharm5.0,主要内容如下:

1.绘制鼻子,这里主要是一个扇形,然后用黑色填充就行,测试代码如下,非常简单:

这个非常简单,主要用到turtle这个模块,一个绘图函数库,可以快速绘制平面二维图形,下面我简单介绍一下实现过程,主要分为鼻子、眼睛、脸、嘴巴这4个部分,实验环境win10+python3.6+pycharm5.0,主要内容如下:

1.绘制鼻子,这里主要是一个扇形,然后用黑色填充就行,测试代码如下,非常简单:

1.jpg

2.绘制眼睛,这里主要是绘制1个大的圆形,用黑色填充,然后再绘制1个小的圆形,用白色填充,测试代码如下:

2.jpg

3.绘制脸,这里主要是绘制一个大的圆形,然后用红色填充就行,测试代码如下,非常简单:

3.jpg

4.绘制嘴巴,这里的代码比较麻烦,就是一些弧线组合,然后填充色为暗红色,测试代码如下:

4.jpg

5.jpg

5.最后就是调用上面的各个部分绘制函数,设置背景色为黄色,眼睛和脸需要调用两次,如下:

6.jpg

运行这个程序,截图如下,就是一个可爱的皮卡丘脸:

7.jpg

至此,我们就完成了利用python的turtle库绘制一个可爱的皮卡丘。总的来说,整个过程不难,但是需要一定的绘图基础,同时也需要对turtle库比较熟悉,常见的绘图函数都需要熟练掌握才行,如果你没有任何基础的话,建议还是先熟悉一下turtle库的使用,再熟悉一下上面的代码,多调试几遍程序,很快就会掌握的。

代码里有不懂的可以参考这个turtle文档~这里只介绍一下用到的:

seth:设置朝向;

fd:前进;

circle:画圆;

fillcolor:填充颜色;

pensize:画笔粗细;

speed:速度;

hideturtle:隐藏海龟;

screensize:设置屏幕大小;

begin_fill:开始填充;

end_fill:结束填充;

penup:画笔抬起;

pendown:画笔落下(此时移动将画线)。

完整源码如下:

import turtle

# 画鼻子

def drawNose():

turtle.penup()

turtle.seth(90)

turtle.fd(100)

turtle.pendown()

turtle.begin_fill()

turtle.fillcolor('black')

turtle.seth(45)

turtle.fd(25)

turtle.seth(135)

turtle.circle(25, 95)

turtle.seth(315)

turtle.fd(25)

turtle.end_fill()

# 画眼睛

def drawEyes(seth, fd, r):

turtle.penup()

turtle.seth(seth)

turtle.fd(fd)

turtle.pendown()

turtle.begin_fill()

turtle.fillcolor('black')

turtle.circle(50)

turtle.end_fill()

turtle.penup()

turtle.circle(50, r)

turtle.pendown()

turtle.begin_fill()

turtle.fillcolor('white')

turtle.circle(20)

turtle.end_fill()

# 画脸

def drawFace(seth, fd):

turtle.penup()

turtle.seth(seth)

turtle.fd(fd)

turtle.pendown()

turtle.begin_fill()

turtle.fillcolor('red')

turtle.circle(70)

turtle.end_fill()

# 画嘴巴

def drawLip():

turtle.penup()

turtle.seth(135)

turtle.fd(250)

turtle.pendown()

turtle.seth(-300)

turtle.circle(30, -65)

turtle.begin_fill()

turtle.fillcolor('Firebrick')

turtle.seth(165)

turtle.fd(140)

turtle.seth(195)

turtle.fd(140)

turtle.seth(-360)

turtle.circle(30, -65)

turtle.penup()

turtle.seth(-60)

turtle.circle(30, 65)

turtle.pendown()

turtle.seth(-70)

turtle.fd(240)

turtle.circle(55, 140)

turtle.seth(70)

turtle.fd(240)

turtle.end_fill()

turtle.seth(-110)

turtle.fd(80)

turtle.begin_fill()

turtle.fillcolor('Firebrick')

turtle.seth(120)

turtle.circle(120, 123)

turtle.seth(-70)

turtle.fd(165)

turtle.circle(55, 140)

turtle.seth(72)

turtle.fd(165)

turtle.end_fill()

# 主函数

def main():

turtle.pensize(4)

turtle.hideturtle()

turtle.setup(1000, 600)

turtle.speed(10)

turtle.screensize(bg='yellow')

drawNose()

drawEyes(160, 250, 60)

drawEyes(-9.5, 530, 230)

drawFace(195, 600)

drawFace(-11, 720)

drawLip()

turtle.done()

if __name__ == '__main__':

main()


 友情链接: NPS