项目: 实时钟表(C语言)
生活随笔
收集整理的這篇文章主要介紹了
项目: 实时钟表(C语言)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 一、最終效果展示
- 二、繪制靜態秒針
- 三、繪制動態秒針
- 四、根據實際時間轉動秒針
- 五、添加時針分針
- 六、添加表盤 刻度
一、最終效果展示
效果圖如下:
二、繪制靜態秒針
代碼如下:
#include<graphics.h> #include<conio.h> #include<math.h>#define High 480 //游戲畫面尺寸 #define Width 640int main(void) {initgraph(Width,High);//初始化繪圖窗口int center_x,center_y;//中心點的坐標,也是鐘表的坐標center_x=Width/2;center_y=High/2;int secondLength;//秒針的長度secondLength=Width/5;int secondEnd_x,secondEnd_y;//秒針的終點secondEnd_x=center_x+secondLength;secondEnd_y=center_y;//畫秒針setlinestyle(PS_SOLID,2);//畫實線,寬度為兩個像素setcolor(WHITE);line(center_x,center_y,secondEnd_x,secondEnd_y);getch();closegraph();//關閉繪圖窗口return 0; }效果圖如下:
三、繪制動態秒針
代碼如下:
效果圖如下:
四、根據實際時間轉動秒針
代碼如下:
五、添加時針分針
代碼如下:
#include<graphics.h> #include<conio.h> #include<math.h>#define High 480 //游戲畫面尺寸 #define Width 640 #define PI 3.14159int main(void) {initgraph(Width,High);//初始化繪圖窗口int center_x,center_y;//中心點的坐標,也是鐘表的坐標center_x=Width/2;center_y=High/2;int secondLength=Width/7;//秒針的長度int minuteLength=Width/6;//分針的長度int hourLength=Width/5;//時針的長度int secondEnd_x,secondEnd_y;//秒針的終點int minuteEnd_x,minuteEnd_y;//分針的終點int hourEnd_x,hourEnd_y;//時針的終點float secondAngle=0;//秒針對應的角度float minuteAngle=0;//分針對應的角度float hourAngle=0;//時針對應的角度SYSTEMTIME ti;//定義保存當前時間的變量while(1){GetLocalTime(&ti);//獲取當前時間//秒針角度的變化secondAngle=ti.wSecond*2*PI/60;//一圈一共2*PI,一圈60秒,一秒鐘秒針走過的角度為2*PI/60//由角度決定的秒針終點坐標//分針角度的變化minuteAngle=ti.wMinute*2*PI/60;//一圈一共2*PI,一圈60分,一分鐘秒針走過的角度為2*PI/60//時針角度的變化hourAngle=ti.wHour*2*PI/12;//一圈一共2*PI,一圈12時,一小時時針走過的角度為2*PI/12//由角度決定的秒針終點坐標secondEnd_x=center_x+secondLength*sin(secondAngle);secondEnd_y=center_y-secondLength*cos(secondAngle);//由角度決定的分針終點坐標minuteEnd_x=center_x+minuteLength*sin(minuteAngle);minuteEnd_y=center_y-minuteLength*cos(minuteAngle);//由角度決定的時針終點坐標hourEnd_x=center_x+hourLength*sin(hourAngle);hourEnd_y=center_y-hourLength*cos(hourAngle);//畫秒針setlinestyle(PS_SOLID,2);//畫實線,寬度為兩個像素setcolor(WHITE);line(center_x,center_y,secondEnd_x,secondEnd_y);//畫分針setlinestyle(PS_SOLID,4);//畫實線,寬度為4個像素setcolor(BLUE);line(center_x,center_y,minuteEnd_x,minuteEnd_y);//畫時針setlinestyle(PS_SOLID,6);//畫實線,寬度為6個像素setcolor(RED);line(center_x,center_y,hourEnd_x,hourEnd_y);Sleep(1000);//1秒setcolor(BLACK);setlinestyle(PS_SOLID,2);line(center_x,center_y,secondEnd_x,secondEnd_y);//隱藏前一幀的秒針setlinestyle(PS_SOLID,4);line(center_x,center_y,minuteEnd_x,minuteEnd_y);//隱藏前一幀的分針setlinestyle(PS_SOLID,6);line(center_x,center_y,hourEnd_x,hourEnd_y);//隱藏前一幀的時針}getch();closegraph();//關閉繪圖窗口return 0; }效果圖如下:
六、添加表盤 刻度
代碼如下:
#include<graphics.h> #include<conio.h> #include<math.h> #define High 480 //游戲畫面尺寸 #define Width 640 #define PI 3.14159int main(void) {initgraph(Width,High);//初始化繪圖窗口int center_x,center_y;//中心點的坐標,也是鐘表的坐標center_x=Width/2;center_y=High/2;int secondLength=Width/7;//秒針的長度int minuteLength=Width/6;//分針的長度int hourLength=Width/5;//時針的長度int secondEnd_x,secondEnd_y;//秒針的終點int minuteEnd_x,minuteEnd_y;//分針的終點int hourEnd_x,hourEnd_y;//時針的終點float secondAngle=0;//秒針對應的角度float minuteAngle=0;//分針對應的角度float hourAngle=0;//時針對應的角度SYSTEMTIME ti;//定義保存當前時間的變量BeginBatchDraw();while(1){//繪制一個簡單的表盤setlinestyle(PS_SOLID,1);//設置表盤邊的粗細setcolor(WHITE);//設置表盤邊的顏色circle(center_x,center_y,Width/4);//畫表盤//畫刻度int x,y,i;for(i=0;i<60;i++){x=center_x+int(Width/4.3*sin(PI*2*i/60));y=center_y+int(Width/4.3*cos(PI*2*i/60));if(i%15==0)bar(x-5,y-5,x+5,y+5);else if(i%5==0)circle(x,y,3);elseputpixel(x,y,WHITE);}outtextxy(center_x-25,center_y+Width/6,"我的時鐘");outtextxy(center_x-120,High-60,"[時針: 紅色] [分針: 藍色] [秒針: 白色]");GetLocalTime(&ti);//獲取當前時間//秒針角度的變化secondAngle=ti.wSecond*2*PI/60;//一圈一共2*PI,一圈60秒,一秒鐘秒針走過的角度為2*PI/60//由角度決定的秒針終點坐標//分針角度的變化minuteAngle=ti.wMinute*2*PI/60;//一圈一共2*PI,一圈60分,一分鐘秒針走過的角度為2*PI/60//時針角度的變化hourAngle=ti.wHour*2*PI/12;//一圈一共2*PI,一圈12時,一小時時針走過的角度為2*PI/12//由角度決定的秒針終點坐標secondEnd_x=center_x+secondLength*sin(secondAngle);secondEnd_y=center_y-secondLength*cos(secondAngle);//由角度決定的分針終點坐標minuteEnd_x=center_x+minuteLength*sin(minuteAngle);minuteEnd_y=center_y-minuteLength*cos(minuteAngle);//由角度決定的時針終點坐標hourEnd_x=center_x+hourLength*sin(hourAngle);hourEnd_y=center_y-hourLength*cos(hourAngle);//畫秒針setlinestyle(PS_SOLID,2);//畫實線,寬度為兩個像素setcolor(WHITE);line(center_x,center_y,secondEnd_x,secondEnd_y);//畫分針setlinestyle(PS_SOLID,4);//畫實線,寬度為4個像素setcolor(BLUE);line(center_x,center_y,minuteEnd_x,minuteEnd_y);//畫時針setlinestyle(PS_SOLID,6);//畫實線,寬度為6個像素setcolor(RED);line(center_x,center_y,hourEnd_x,hourEnd_y);FlushBatchDraw();Sleep(1000);//1秒setcolor(BLACK);setlinestyle(PS_SOLID,2);line(center_x,center_y,secondEnd_x,secondEnd_y);//隱藏前一幀的秒針setlinestyle(PS_SOLID,4);line(center_x,center_y,minuteEnd_x,minuteEnd_y);//隱藏前一幀的分針setlinestyle(PS_SOLID,6);line(center_x,center_y,hourEnd_x,hourEnd_y);//隱藏前一幀的時針}EndBatchDraw();getch();closegraph();//關閉繪圖窗口return 0; }效果圖如下:
總結
以上是生活随笔為你收集整理的项目: 实时钟表(C语言)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 项目: 实现弹跳小球动画
- 下一篇: 项目: 用easyx实现消砖块