Python基础视频教程 入门免费观看-创客学院​www.makeru.com.cn

秒表是一项随处可见的神奇小物件,最常用到秒表的两大场景,一个是运动会,另一个是健身房,因此也总是让人联想到汗水和心跳,贲张的血管,粗重的呼吸,时间似乎变得缓慢,那一只聚拢万千目光的小小秒表,此刻却像一座沉重而古老的大钟,每一次悠长的回摆都回荡着岁月的钝响,一次又一次把人们的心提到了嗓子眼。那么,秒表有没有办法做的可爱、调皮一点呢?比如像下图这样的猫咪秒表。

要实现这样的效果,用python就足够了。主要用到的就是matplotlib包。

首先,下载猫咪的gif图,然后将gif图切分成多张png图。用这几句代码就可以实现:

im=Image.open(infile)

mypalette=im.getpalette()

im.putpalette(mypalette)

new_im=Image.new('RGBA',im.size)

new_im.paste(im)

new_im.save('image\\{}.png'.format(str(i)))

原始的gif是这样的:

拆分成的png图片:

然后,动画的效果是通过帧动画来实现的。每一帧都用一张上文生成的不同的png图片,遍历完png图片之后,再继续循环往复。不难看出,原始gif中的猫耳朵是向左的,如果改成向上的,看着要舒服一些。这就需要将图片沿着斜45度角进行旋转。用这几行代码就可以:

newim=[]

for m in range(len(im[0])):

item=[]

for n in range(len(im)):

item.append(im[n][m])

newim.append(item)

newims.append(np.array(newim))

现在,猫咪的gif动画是酱紫的。

接着,就是引入matplotlib,“支起”画布,具体代码如下:

import matplotlib.pyplot as plt

fig=plt.figure(figsize=(6,6))

ax=plt.gca()

ax.grid()

然后,就可以绘制指针了,用下面这句话:

#两个[]的作用都是用于之后填充数据,当其中填充的数据不一样的时候,指针也就不一样,也就实现了动画效果

anchor,=plt.plot([],[],'-',color=precolor,lw=1.8)

接着,就是绘制表盘的外围以及“3”、“6”、“9”、“12”四个数字,用几行代码就可以搞定:

#绘制表盘

x_out=[r_out*np.cos(theta[i]) for i in range(len(theta))]

y_out=[r_out*np.sin(theta[i]) for i in range(len(theta))]

ln1.set_data(x_out,y_out)

#绘制“3”、“6”、“9”、“12”四个数字

ax.text(1.85, 0, "3",color='#791E94',fontsize=18,ha="center",va="center",fontproperties=font)

ax.text(-1.85, 0, "9",color='#791E94',fontsize=18,ha="center",va="center",fontproperties=font)

ax.text(0.05, 1.85, "12",color='#791E94',fontsize=18,ha="center",va="center",fontproperties=font)

ax.text(0.05, -1.85, "6",color='#791E94',fontsize=18,ha="center",va="center",fontproperties=font)

画出来的效果是这样的,是不是很卡通?

最后,就是动画效果的实现,最主要的语句是这个:

#fig指的是画布,update指的是执行每一帧更新的函数,length指的是一共有多少帧,init指的是第一帧所执行的函数

ani=animation.FuncAnimation(fig,update,length,init_func=init,interval=interval_time)

在update函数中,对猫咪的动作和指针的位置按帧来进行赋值,代码如下:

#对猫咪的动作进行帧赋值

figcat.set_data(newims[i%6])

#对指针的位置进行帧赋值

anchor.set_data([0,anchor_ratio*math.cos(theta[i])*(r_out-2*r_in)],[0,anchor_ratio*math.sin(theta[i])*(r_out-2*r_in)])

ps:如果想要一边看喵表走,一边听猫咪叫,那可以用python自带的winsound模块来实现。用下面这行代码就可以:

#友情提示,'CatMeow.mp4'文件是需要自行下载的

winsound.PlaySound('CatMeow.mp4',winsound.SND_LOOP)

python制作一个计时器_用Python制作一个猫咪小秒表相关推荐

  1. 用python制作一个猫咪小秒表

    如果你也想赚钱,实现财务自由,但接触不到优质的人脉和资源,可以到公June浩:成长home,发"资源" ,就会看到我吐血整理的168条保姆级零基础吸金秘籍,跟着我一起亲历毕业5年. ...

  2. 用Python制作一个可爱的猫咪小秒表

    秒表是一项随处可见的神奇小物件,最常用到秒表的两大场景,一个是运动会,另一个是健身房,因此也总是让人联想到汗水和心跳,贲张的血管,粗重的呼吸,时间似乎变得缓慢,那一只聚拢万千目光的小小秒表,此刻却像一 ...

  3. 可爱猫python_用Python制作一个可爱的猫咪小秒表

    秒表是一项随处可见的神奇小物件,最常用到秒表的两大场景,一个是运动会,另一个是健身房,因此也总是让人联想到汗水和心跳,贲张的血管,粗重的呼吸,时间似乎变得缓慢,那一只聚拢万千目光的小小秒表,此刻却像一 ...

  4. js拆字_分图程序 _制作个人字体_手写字制作ttf字体方法

    js拆字_分图程序 _制作个人字体_手写字制作ttf字体方法 前言 FontForgeBuilds制作ttf FontForgeBuilds制作个人字体 Adobe_Fireworks_CS5批量转换 ...

  5. python制作一个菜单_用CSS打造一个图形化的汉堡菜单

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 最近,我发现Vitaly Rubstov写的运球投篮特效十分了不起,我简直遏制不住想要亲自用代码实现这个功 ...

  6. python制作电脑软件_利用PYTHON制作桌面版爬虫软件(一)

    抱歉,对长沙房地产数据的挖掘与分析[三],想了蛮久,觉得对自己的分析结果不是很理想.等我完善好了,我再发出来吧.今天继续开启新的一专题.主要讲解如何用PYTHON实现简单的桌面软件的制作. 题外话,我 ...

  7. 如何用python编程制作出表格_使用Python轻松制作漂亮的表格

    原标题:使用Python轻松制作漂亮的表格 转自:https://www.linuxmi.com Python太有用而且很方便 图表可以用matplotlib轻松制作,数值计算只要有numpy就行. ...

  8. 用python制作3d动画_-用 Python 做科学计算--Visual-制作3D演示动画

    # Visual-制作3D演示动画 [Visual](http://vpython.org) 是Python的一个简单易用的3D图形库,使用它可以快速创建3D场景.动画.和TVTK相比它更加适合于创建 ...

  9. python表情换头_使用Python制作表情包实现换脸功能

    "表情包"是现在非常流行的交流方式,通过一张图片就能把文字不能表达或不便于表达的情感给表示出来,表情包一经诞生,就统治了中国人的社交圈,尤其是年轻人,他们的社交方式是所谓" ...

最新文章

  1. sklearn gridcv
  2. Linux/Unix好书推荐
  3. thinkphp整合极验滑动验证码源码演示下载
  4. C++11 auto 关键字学习1
  5. c#通过app.manifest使程序以管理员身份运行
  6. moxy json介绍_通过MOXy实现使您的JAXB更清洁
  7. Week2 Teamework from Z.XML 软件分析与用户需求调查(三)必应助手体验评测
  8. 去除div css背景,jQuery-拖动div CSS背景
  9. scanf()接受不同类型的参数的一个例子
  10. fork函数与execve函数
  11. python3中的sorted()函数
  12. CSP 201712-3 Crontab(100)
  13. SyncToy多电脑工作离线同步/备份方案
  14. 1_数据分析应掌握的Python基础
  15. Backstepping(反步法)控制初学讲解
  16. 何恺明一作论文 MAE 已有人复现!PyTorch 版!
  17. 体检先锋_家居健康小秘笈
  18. es6箭头函数_【知识点】ES6箭头函数、箭头函数与普通函数的区别
  19. 【ArcGIS错误集锦002-Server02】ArcGISserver发布站点报错Failed to create the site. Could not create directory path
  20. 串行口中断服务函数的触发条件-------TI/RI 触发

热门文章

  1. 基于node实现qq空间点赞
  2. linux5关闭apic服务,Linux中断 - APIC
  3. 混合云,让你看的清清楚楚明明白白真真切切
  4. Computational Intelligence Assisted Design -- In Industrial Revolution 4.0 (计算智能在工业4.0的应用) --绪论
  5. 【PHP】简单的网站访问量计数器实现
  6. 餐饮行业的利器——大数据
  7. 一文带你秒懂数据结构与算法的三大要素、五大特征!
  8. 工业相机概述-选型事项-生产厂家汇总
  9. 计算机开机后黑屏 只有鼠标,电脑开机后一直黑屏只有一个鼠标,重启也是.怎么处理...
  10. 私域运营中小程序的作用