百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

没人玩过的python-matplotlib:模拟动态时钟

off999 2024-10-25 13:40 32 浏览 0 评论

1 效果

2 介绍:

2.1 用python的matplotlib模拟动态时钟,全网基本没有玩过。

2.2 matplotlib基本用于数据可视化,并非用于动画设计,我曾用于模拟太阳-地球-月亮,很受大家喜欢。

3 讲解

3.1 导入模块

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from datetime import datetime

3.2 第2步:定义画布

fig=plt.figure(figsize=(6,6))
#画布外的背景颜色设置
fig.patch.set_facecolor('black')
ax=plt.gca()

3.3 第3步:定义时钟相关要素

#圆盘
ln1,=ax.plot([],[],'-',lw=2)
#绿色秒针小圆圈
ln2,=ax.plot([],[],'-',color='g',lw=1)
#红色秒针线
line_s,=plt.plot([],[],'-',color='r',lw=1)
#绿色时针线
line_h,=plt.plot([],[],'-',color='g',lw=1)
#黄色分针线
line_m,=plt.plot([],[],'-',color='y',lw=1)

3.4 第4步:定义时针和分针线,且时间获取

angle = 360 #一圈正好360°

#定义绑定的角度
def wrap_angle(angle):
    return angle % 360

#获取今天的时间
today = datetime.today()
#定义时分秒
hours = today.hour % 12 #显示12h制
#hours = today.hour % 24 #显示24h制
minutes = today.minute
seconds = today.second

#时针线
hour_angle = wrap_angle(hours * (360 / 12)+30)
#radians() 方法将角度转换为弧度。
hour_angle = np.radians(hour_angle)
line_h_x=np.cos(hour_angle)
line_h_y=np.sin(hour_angle)
line_h.set_data([0,line_h_x],[0,line_h_y])

#分针线
min_angle = wrap_angle(minutes * (360 / 60)+90)
min_angle = np.radians(min_angle)
line_m_x=np.cos(min_angle)*1.5
line_m_y=np.sin(min_angle)*1.5
line_m.set_data([0,line_m_x],[0,line_m_y])

3.5 第5步:初始化圆盘和刻度

theta=np.linspace(2*np.pi,0,60,endpoint=False)
#圆盘的半径
r_out=2

#定义初始化
def init():
    radius = 1.85

    #num=[1,2,3,4,5,6,7,8,9,10,11,12]
    #等于上面
    num= [i+1 for i in range(12)]
    for i in range(12): #定义时钟上面的1~12的小时刻度
            angle = np.radians(i * (360 / 12)-60) #角度
            x = np.cos(angle) * (radius)  #x坐标
            y = -np.sin(angle) * (radius)  #y坐标
            ax.text(x, y, num[i],color='red',fontsize=18,ha="center",va="center")
    
    #画时钟圆圈
    ax.set_xlim(-2,2)
    ax.set_ylim(-2,2)
    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)

    return ln1,

3.6 第6步:秒针和秒针头小圆圈动画更新

def update(i):
    #绿色秒针小圆圈的半径
    r_in = 0.1
    
    #秒针线
    line_s_x=np.cos(theta[i])*1.7
    line_s_y=np.sin(theta[i])*1.7
    line_s.set_data([0,line_s_x],[0,line_s_y])

    #秒针的头,绿色小圆圈
    x_in = [((r_out - r_in) * np.cos(theta[i]) + r_in * np.cos(theta[j])) for j in range(len(theta))]
    y_in = [((r_out - r_in) * np.sin(theta[i]) + r_in * np.sin(theta[j])) for j in range(len(theta))]
    ln2.set_data(x_in, y_in)
    
    return ln2,

3.7 第7步:结束

ani=animation.FuncAnimation(fig,update,range(len(theta)),init_func=init,interval=1000)
plt.axis('off')
plt.show()

自己整理,分享出来,有一个小小的bug。

就是时针分针秒针不是真实的时间和刻度的联动,是模拟动态时钟而已,欢迎大高手踊跃改进。

相关推荐

怎么用火绒关闭win安全中心(win10火绒安全软件怎么关闭)

一、火绒防火墙关闭方法在电脑上运行火绒软件后,点击首页界面的“防护中心”,在病毒防护界面可以关闭文件、U盘、邮件等保护功能,。系统防护:在该界面可以关闭系统防护功能,。网络防护:可以关闭网络保护等功...

微软应用商店下载手机版(微软应用商店在哪下)

、在桌面任务栏找到微软应用商店,点击并打开。2、进入页面后点击【应用】,进入应用页面。3、在页面里往下移动,找到热门应用,找到一个软件,点击进入。4、进入页面后,点击【安装】,软件会自动安装,安装完毕...

win11系统怎么查看电脑配置(win11怎么查看系统版本)

答:win11查看电脑配置步骤如下。1.点击下方任务栏的windows图标或者按下键盘“windows键”打开开始菜单。2.在开始菜单中找到“设置”或“settings”,一般是右上角的齿轮状按钮,3...

麦克风没坏但是没声音(麦克风没声怎么回事)

几种可能性,供您参考:1、麦是完全好的(其它机子上可以用)2、插孔没有插错3、音量控制里的麦克风并没有静音掉4、声卡驱动已重装过N次,新的旧的都试过了5、音量控制→属性→录音→麦克风下面的勾...

win10系统怎么分区(win10应该怎么分区)
  • win10系统怎么分区(win10应该怎么分区)
  • win10系统怎么分区(win10应该怎么分区)
  • win10系统怎么分区(win10应该怎么分区)
  • win10系统怎么分区(win10应该怎么分区)
wps office是干什么的(wps office是干什么的可以卸载吗)

   WPSOffice一站式办公服务平台,具有可兼容Word、Excel、PPT三大办公组件的不同格式,支持PDF文档的编辑与格式转换集成思维导图、流程图等诸多功...

百度网页(百度网页自动翻译怎么设置)

1、百度的新闻源网站太多了,基本上大型的商业门户+政府官方的媒体、机构部门都是。2、出现在【百度新闻】里的网站都是新闻源网站。3、怎么判断一个网站是不是新闻源:1)在百度新闻下直接搜网站名字,如果出现...

外国网站的浏览器下载(外国网站的浏览器下载Games)

答,可在浏览器上面下载所需要的视频/音乐的名称,下载完毕后,按所给的排列表找出所需要的视频/音乐。如果是喜欢的视频/音乐它在浏览器里边都有分类,可详细的介绍一下自己吧,还可以在古典音乐或者名著导读介绍...

京东攒机助手(京东攒机在哪)
京东攒机助手(京东攒机在哪)

自己在京东买的配置,以为身边的人能帮忙组装,但是好像超过了个人的认知,所以无奈之下只能在京东找专业人士进行安装,挺快,前一天傍晚下单,第二天上午上班就来了,组装师傅挺好,挺有耐心,业务也挺熟练,走线看起来也不错,买的机箱是师傅从来没有接触过...

2025-11-14 22:03 off999

腾讯电脑管家和360哪个好(腾讯电脑管家好用还是360好用)

两个都很好。1.腾讯电脑管家和360卫士都是电脑上最常见的免费杀毒软件,两款软件在病毒查杀上都是首屈一指的。2.360卫士在功能上十分丰富,从木马查杀到电脑清理以及优化加速都是一应俱全的,而且还集成了...

笔记本突然没声音(笔记本突然没声音是什么原因)

可能是因为电脑声音驱动设备故障导致电脑没有声音。解决方法:使用Win+X快捷键,然后在弹出的窗口中点击“设备管理器”选项,之后点击“打开声音、视频和游戏控制器”选项,打开的属性界面查看运行是否正常,或...

大白菜一键装机win7系统(大白菜装系统教程win7)

1.电脑开机按f2或del进bios里面,启动项里面设置U盘启动,保存退出重启。2.键盘上一直按f12或f10,选择大白菜的u盘,进入pe界面,键盘按上下健移动,选择2003pe或win10pe,按回...

迅雷在线资源网观看(迅雷资源网 1080p 下载)
  • 迅雷在线资源网观看(迅雷资源网 1080p 下载)
  • 迅雷在线资源网观看(迅雷资源网 1080p 下载)
  • 迅雷在线资源网观看(迅雷资源网 1080p 下载)
  • 迅雷在线资源网观看(迅雷资源网 1080p 下载)
电脑windows密钥怎么查(windows密钥怎么看)

Win10系统查看并激活产品密钥的方法为:1、首先、进入到电脑屏幕的首页,在左上角会看到界面首页的“此电脑”选项。2、右键单次点击“此电脑”选项,在弹出的菜单快捷栏中选择最下方的“性”选项,并进行点击...

深度技术ghost xp sp3 如何安装

1、ghostxpsp3快速装机版使用ghost镜像来安装。方便快捷易操作。2、电脑开机进入bios后设置成光驱启动。设置方法参阅主板说明书。3、放入安装光盘后保存退出。电脑自动重启后光盘开始引导...

取消回复欢迎 发表评论: