经验首页 前端设计 程序设计 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:画笔落下(此时移动将画线)。

完整源码如下:

  1. import turtle
  2.  
  3. # 画鼻子
  4.  
  5. def drawNose():
  6.  
  7. turtle.penup()
  8.  
  9. turtle.seth(90)
  10.  
  11. turtle.fd(100)
  12.  
  13. turtle.pendown()
  14.  
  15. turtle.begin_fill()
  16.  
  17. turtle.fillcolor('black')
  18.  
  19. turtle.seth(45)
  20.  
  21. turtle.fd(25)
  22.  
  23. turtle.seth(135)
  24.  
  25. turtle.circle(25, 95)
  26.  
  27. turtle.seth(315)
  28.  
  29. turtle.fd(25)
  30.  
  31. turtle.end_fill()
  32.  
  33. # 画眼睛
  34.  
  35. def drawEyes(seth, fd, r):
  36.  
  37. turtle.penup()
  38.  
  39. turtle.seth(seth)
  40.  
  41. turtle.fd(fd)
  42.  
  43. turtle.pendown()
  44.  
  45. turtle.begin_fill()
  46.  
  47. turtle.fillcolor('black')
  48.  
  49. turtle.circle(50)
  50.  
  51. turtle.end_fill()
  52.  
  53. turtle.penup()
  54.  
  55. turtle.circle(50, r)
  56.  
  57. turtle.pendown()
  58.  
  59. turtle.begin_fill()
  60.  
  61. turtle.fillcolor('white')
  62.  
  63. turtle.circle(20)
  64.  
  65. turtle.end_fill()
  66.  
  67. # 画脸
  68.  
  69. def drawFace(seth, fd):
  70.  
  71. turtle.penup()
  72.  
  73. turtle.seth(seth)
  74.  
  75. turtle.fd(fd)
  76.  
  77. turtle.pendown()
  78.  
  79. turtle.begin_fill()
  80.  
  81. turtle.fillcolor('red')
  82.  
  83. turtle.circle(70)
  84.  
  85. turtle.end_fill()
  86.  
  87. # 画嘴巴
  88.  
  89. def drawLip():
  90.  
  91. turtle.penup()
  92.  
  93. turtle.seth(135)
  94.  
  95. turtle.fd(250)
  96.  
  97. turtle.pendown()
  98.  
  99. turtle.seth(-300)
  100.  
  101. turtle.circle(30, -65)
  102.  
  103. turtle.begin_fill()
  104.  
  105. turtle.fillcolor('Firebrick')
  106.  
  107. turtle.seth(165)
  108.  
  109. turtle.fd(140)
  110.  
  111. turtle.seth(195)
  112.  
  113. turtle.fd(140)
  114.  
  115. turtle.seth(-360)
  116.  
  117. turtle.circle(30, -65)
  118.  
  119. turtle.penup()
  120.  
  121. turtle.seth(-60)
  122.  
  123. turtle.circle(30, 65)
  124.  
  125. turtle.pendown()
  126.  
  127. turtle.seth(-70)
  128.  
  129. turtle.fd(240)
  130.  
  131. turtle.circle(55, 140)
  132.  
  133. turtle.seth(70)
  134.  
  135. turtle.fd(240)
  136.  
  137. turtle.end_fill()
  138.  
  139. turtle.seth(-110)
  140.  
  141. turtle.fd(80)
  142.  
  143. turtle.begin_fill()
  144.  
  145. turtle.fillcolor('Firebrick')
  146.  
  147. turtle.seth(120)
  148.  
  149. turtle.circle(120, 123)
  150.  
  151. turtle.seth(-70)
  152.  
  153. turtle.fd(165)
  154.  
  155. turtle.circle(55, 140)
  156.  
  157. turtle.seth(72)
  158.  
  159. turtle.fd(165)
  160.  
  161. turtle.end_fill()
  162.  
  163. # 主函数
  164.  
  165. def main():
  166.  
  167. turtle.pensize(4)
  168.  
  169. turtle.hideturtle()
  170.  
  171. turtle.setup(1000, 600)
  172.  
  173. turtle.speed(10)
  174.  
  175. turtle.screensize(bg='yellow')
  176.  
  177. drawNose()
  178.  
  179. drawEyes(160, 250, 60)
  180.  
  181. drawEyes(-9.5, 530, 230)
  182.  
  183. drawFace(195, 600)
  184.  
  185. drawFace(-11, 720)
  186.  
  187. drawLip()
  188.  
  189. turtle.done()
  190.  
  191. if __name__ == '__main__':
  192.  
  193. main()


 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号