Excel中實現的動態模擬時鐘圖表,超級逼真,不要懷疑你的眼睛!
廢話少說,先看效果圖:
Excel中實現的動態模擬時鐘
模擬時鐘是一個有四個數據系列的XY散點圖;
需要使用VBA讓時鐘走起來;
它使用OnTime方法更新圖表的每一秒;
1、插入散點圖制作模擬時鐘;
秒針:="SecondHand"
分針:="MinuteHand"
時針:="HourHand"
表盤數字:="ClockNumbers"
插入散點圖制作模擬時鐘
2、編寫VBA代碼:
在開發工具--visual basic---模塊1中寫入如下代碼:
模塊1
在Thisworkbook中寫入如下代碼:在工作簿打開時自己運行時鐘,當關閉工作簿時自動停止時鐘;
在Thisworkbook中寫入
3、設置表盤、指針格式,無聊時換換表盤,讓自己換換心情吧!
這個動態模擬時鐘圖表難度較大,需要精通散點圖和Excel VBA的知識,如果你能夠做出來,那你一定可以在簡歷上非常有自信的寫下:“本人精通Excel!”,如果你現在還做不出來,那就不要輕易跟老板說自己精通Excel哦!
關注我們,讓你每天都能進步一點點,讓你早日精通Excel哦!
如果你覺得本文對你有幫助或啟發,請點贊并分享給更多小伙伴吧!
在這個程序中,我們設計了一個模擬時鐘,使用c編程語言中的圖形來告訴系統時鐘的當前時間。
我們通過包括頭文件“stdio.h”“conio.h”“dos.h”“graphics.h”和“process.h”來啟動代碼。
期待和大家一起交流學習 尋找和體驗編程的魅力(群號:233026065)
在開始,我們將做三個功能,即: -
· “calculatehrs(int h)”
· “calculatemin(int m)”
· “changehrs(int m,int a)”
在第一函數中,小時的值由形式參數接收,然后檢查并且滿足其滿足的任何情況,并且x存儲其必須指向時鐘的特定角度的值。例如
12345678910111213 | intcalculatehrs(inth){intx;switch(h){case0: x=90;break;case1:case13: x=60;break;case2:case14: x=30;break;case3:case15: x=0; |
第二函數,分鐘的值由形式參數接收,然后檢查,并且滿足“x”的任何情況被分配一些值,但是在這種情況下,分鐘首先除以5.例如
12345678910111213 | intcalculatemin(intm){intx;if(m%5==0){switch(m){case0: x=90;break;case5: x=60;break;case10: x=30;break;case15: x=360;break;case20: x=330; |
它的代碼與小時的代碼相同,因為它標記分鐘是5,10,15,20等,所以它是在1,2,3到12。
如果它不是5的倍數,則再次檢查它是否大于0并小于15,然后根據圖形屏幕為x分配值。
1234567 | if(m>0&&m<15){switch(m){case1: x=84;break;case2: x=78;break;case3: x=72;break;case4: x=66;break; |
此過程遵循3次以上以找到分鐘是否在“0-15”,“15-30”,“30-45”或“45-60”之間,并且返回“x”,其保存某個角度,它必須指向與第一功能相同的時鐘。
第三功能是改變時針的位置,以給予時鐘一個活潑的外觀,因為它的位置改變三次,如果分鐘在15-30,30-45,45-60之間。
12345678 | intchangehrs(intm,inta){if(m>15&&m<=30)a-=12;if(m>30&&m<=45)a-=18;if(m>45&&m<60)a-=24;return(a);} |
現在主代碼在我們輸入主函數時開始,“struct time t”用于獲取系統上的當前時間,然后將其存儲在h,m,s中。
1234567 | structtimet;intgd=DETECT,gm,h,m,s,a,b,c,i,j,k;initgraph(&gd,&gm,"C:\TC\BGI");gettime(&t);h=t.ti_hour;m=t.ti_min;s=t.ti_sec; |
并且在接收到時間之后,所有樹功能被調用以根據當前時間設置小時和分針的角度。
如果三個循環被一個接一個地初始化,第一個為小時,第二個為分鐘,第三個循環為秒。使用圓圈創建時鐘,每個小時用小圓圈標記點。
12345678910 | for(i=a;i>0;i-=6)for(j=b;j>0;j-=6)for(k=c;k>0;k-=6){outtextxy(190,20,"Analog Clock");circle(300,200,102);circle(300,200,100);outtextxy(385,185,"3");outtextxy(288,110,"12");outtextxy(207,185,"9");outtextxy(295,290,"6"); |
Pieslice函數用于表示小時,分鐘和秒針,而不是使用線函數,因為它更容易表示。
123 | pieslice(300,200,i-1,i,75);pieslice(300,200,j-1,j,85);pieslice(300,200,k-1,k,95); |
它的語法是
pieslice(X,Y,起始角度,終止角度,半徑);
重復整個過程,直到用戶按任何鍵。
程序真的很簡單,你只需要了解基本的模擬時鐘,并將時鐘分成360度角,并計算小時,分鐘和秒的所有角度。
.
.
.
.
這是今天的內容,有問題的地方大家可以指出。
如果對編程方面有興趣的可以加群:233026065,大家一起學習交流。
群內還有許多學習資料、視頻,免費課......