最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言實現(xiàn)實時鐘表

 更新時間:2022年05月12日 16:04:30   作者:輝小歌  
這篇文章主要為大家詳細介紹了C語言實現(xiàn)實時鐘表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C語言實現(xiàn)實時鐘表的具體代碼,供大家參考,具體內容如下

一、最終效果展示

效果圖如下:

二、繪制靜態(tài)秒針

代碼如下:

#include<graphics.h>
#include<conio.h>
#include<math.h>

#define High 480 //游戲畫面尺寸
#define Width 640

int 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;
}

效果圖如下:

三、繪制動態(tài)秒針

代碼如下:

#include<graphics.h>
#include<conio.h>
#include<math.h>

#define High 480 //游戲畫面尺寸
#define Width 640
#define PI 3.14159

int 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;//秒針的終點
?? ?float secondAngle=0;//秒針對應的角度

?? ?while(1)
?? ?{
?? ??? ?//由角度決定的秒針終點坐標
?? ??? ?secondEnd_x=center_x+secondLength*sin(secondAngle);
?? ??? ?secondEnd_y=center_y-secondLength*cos(secondAngle);
?? ??? ?//畫秒針
?? ??? ?setlinestyle(PS_SOLID,2);//畫實線,寬度為兩個像素
?? ??? ?setcolor(WHITE);
?? ??? ?line(center_x,center_y,secondEnd_x,secondEnd_y);
?? ??? ?Sleep(1000);//1秒

?? ??? ?setcolor(BLACK);
?? ??? ?line(center_x,center_y,secondEnd_x,secondEnd_y);//隱藏前一幀的秒針

?? ??? ?//秒針角度的變化
?? ??? ?secondAngle=secondAngle+2*PI/60;
?? ??? ?//一圈一共2*PI,一圈60秒,一秒鐘秒針走過的角度為2*PI/60
?? ?}
?? ?getch();
?? ?closegraph();//關閉繪圖窗口
?? ?return 0;
}

效果圖如下:

四、根據實際時間轉動秒針

代碼如下:

#include<graphics.h>
#include<conio.h>
#include<math.h>

#define High 480 //游戲畫面尺寸
#define Width 640
#define PI 3.14159

int 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;//秒針的終點
?? ?float secondAngle=0;//秒針對應的角度
?? ?SYSTEMTIME ti;//定義保存當前時間的變量

?? ?while(1)
?? ?{
?? ??? ?GetLocalTime(&ti);//獲取當前時間
?? ??? ?//秒針角度的變化
?? ??? ?secondAngle=ti.wSecond*2*PI/60;
?? ??? ?//一圈一共2*PI,一圈60秒,一秒鐘秒針走過的角度為2*PI/60
?? ??? ?//由角度決定的秒針終點坐標

?? ??? ?secondEnd_x=center_x+secondLength*sin(secondAngle);
?? ??? ?secondEnd_y=center_y-secondLength*cos(secondAngle);
?? ??? ?//畫秒針
?? ??? ?setlinestyle(PS_SOLID,2);//畫實線,寬度為兩個像素
?? ??? ?setcolor(WHITE);
?? ??? ?line(center_x,center_y,secondEnd_x,secondEnd_y);
?? ??? ?Sleep(1000);//1秒

?? ??? ?setcolor(BLACK);
?? ??? ?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.14159

int 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.14159

int 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);
?? ??? ??? ?else
?? ??? ??? ??? ?putpixel(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++編程中對設計模式中的原型模式的使用

    實例講解C++編程中對設計模式中的原型模式的使用

    這篇文章主要介紹了C++編程中對設計模式中的原型模式的使用實例,包括原型模式中對C++的深拷貝和淺拷貝的處理,需要的朋友可以參考下
    2016-03-03
  • 淺談C++類型轉換幾種情況

    淺談C++類型轉換幾種情況

    本文主要介紹了幾種C++類型轉換,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • C++實現(xiàn)隨機數生成的現(xiàn)代化封裝

    C++實現(xiàn)隨機數生成的現(xiàn)代化封裝

    在現(xiàn)代?C++?中,隨機數生成是許多程序設計中不可或缺的部分,例如游戲開發(fā)、算法設計、統(tǒng)計模擬等,本文將以一個封裝好的隨機工具類?Random?為例,深入剖析其功能的實現(xiàn)與使用,并引入相關知識,幫助讀者觸類旁通,掌握?C++?隨機數的核心技巧
    2024-11-11
  • C++11的函數包裝器std::function使用示例

    C++11的函數包裝器std::function使用示例

    C++11引入的std::function是最常用的函數包裝器,它可以存儲任何可調用對象并提供統(tǒng)一的調用接口,以下是關于函數包裝器的詳細講解,包括它的基本用法、特點、限制、以及與其他相關機制的對比
    2024-12-12
  • VS2022 Git提交代碼的實現(xiàn)

    VS2022 Git提交代碼的實現(xiàn)

    本文主要介紹了VS2022 Git提交代碼的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • C++封裝遠程注入類CreateRemoteThreadEx實例

    C++封裝遠程注入類CreateRemoteThreadEx實例

    這篇文章主要介紹了C++封裝遠程注入類CreateRemoteThreadEx實例,詳細講述了注入DLL到指定的地址空間以及從指定的地址空間卸載DLL的方法,需要的朋友可以參考下
    2014-10-10
  • C語言詳細講解二分查找用法

    C語言詳細講解二分查找用法

    二分查找法,又叫做折半查找法,它是一種效率較高的查找方法。但是,折半查找要求線性表必須采用順序存儲結構,而且表中元素按關鍵字有序排列
    2022-04-04
  • C語言的strcpy函數你了解嗎

    C語言的strcpy函數你了解嗎

    這篇文章主要為大家詳細介紹了C語言的strcpy函數,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Microsoft Visual C++ 程序的部署方法

    Microsoft Visual C++ 程序的部署方法

    由Microsoft Visual C++編譯的程序動態(tài)鏈接到C運行時(/MD 或 /MDd),它必須運行DLL的一份拷貝(通常被叫作MSVCRT.DLL 或 MSVCRxx.DLL,其中xx代表Visual C++的版本)
    2013-04-04
  • C/C++中的名字空間與作用域示例詳解

    C/C++中的名字空間與作用域示例詳解

    這篇文章主要給大家介紹了關于C/C++中名字空間與作用域的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用c/c++具有一定的參考學習價值,需要的朋友們下面隨著小編來一起看看吧。
    2017-09-09

最新評論

锦州市| 化州市| 株洲县| 岳普湖县| 隆昌县| 攀枝花市| 海原县| 抚远县| 通辽市| 玉溪市| 左云县| 苍梧县| 绥中县| 天门市| 肥西县| 渑池县| 荔波县| 东兰县| 庐江县| 沾化县| 屯留县| 沅江市| 台南县| 崇左市| 阿瓦提县| 托里县| 习水县| 定边县| 集安市| 松原市| 东辽县| 嘉荫县| 澎湖县| 新竹市| 安康市| 宜章县| 延寿县| 攀枝花市| 商丘市| 霍山县| 乌审旗|