您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“C語言如何繪制簡單時鐘小程序”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
先貼效果圖給大家先看看
基本機(jī)制是通過獲取系統(tǒng)的時鐘去繪制圖線進(jìn)行展示
貼出代碼 ,大家可以直接使用的 .程序我進(jìn)一步的講解
#include <graphics.h> #include <conio.h> #include <math.h> #include <time.h> #define high 480 #define width 640 #define pi 3.141592 int main() { initgraph(high, width); int center_x, center_y; center_y = width / 2; // 320 center_x = high / 2; // 240 SYSTEMTIME ti; //獲取系統(tǒng)的時間 // 秒針屬性 int secondEnd_x, secondEnd_y; int secondLenth = 120; secondEnd_x = center_x + secondLenth; secondEnd_y = center_y; float secondAngle = 0; // 分鐘屬性 int minuteEnd_x, minuteEnd_y; float minuteAngle = 0; int minuteLenth = 90; minuteEnd_x = center_x + minuteLenth; minuteEnd_y = center_y + minuteLenth; // 時鐘屬性 int hoursEnd_x, hoursEnd_y; float hoursAngle = 0; int hoursLenth = 60; hoursEnd_x = center_x + hoursLenth; hoursEnd_y = center_y + hoursLenth; BeginBatchDraw(); while (1) { // 獲取時間 GetLocalTime(&ti); //繪制中心坐標(biāo) //setlinecolor(WHITE); //fillcircle(center_x, center_y, 2); // 繪制一個表盤 setbkcolor(BLACK); setlinestyle(PS_SOLID, 1); setlinecolor(WHITE); circle(center_x, center_y, 130); //outtextxy(center_x - 25, center_y + width / 6, "我的時鐘"); // 輸出字符串 (VC6) TCHAR s[] = _T("我的時鐘"); outtextxy(210, 400, s); // 繪制表盤刻度 int x, y, i; for (i = 0; i < 60; i++) { x = center_x + 125 * sin(i * 2 * pi / 60); y = center_y - 125 * cos(i * 2 * pi / 60); // 一刻鐘 if (i % 15 == 0) { bar(x - 5, y - 5, x + 5, y + 5); } else if ( i % 5 == 0) //5分鐘 { circle(x, y, 3); } else { putpixel(x, y, WHITE); // 小白點(diǎn) } } //轉(zhuǎn)動秒針 secondAngle = ti.wSecond * 2 * pi / 60; // 2 * pi / 60 =一秒鐘走的角度 ti.wSecond =系統(tǒng)當(dāng)前秒 secondEnd_x = center_x + secondLenth * sin(secondAngle); secondEnd_y = center_y - secondLenth * cos(secondAngle); //轉(zhuǎn)動分鐘 minuteAngle = ti.wMinute * 2 * pi / 60 + secondAngle / 60; minuteEnd_x = center_x + minuteLenth * sin(minuteAngle); minuteEnd_y = center_y - minuteLenth * cos(minuteAngle); //轉(zhuǎn)動時鐘 hoursAngle = ti.wHour * 2 * pi / 12 + minuteAngle / 60; hoursEnd_x = center_x + hoursLenth * sin(hoursAngle); hoursEnd_y = center_y + hoursLenth * cos(hoursAngle); // 繪制秒針 setlinecolor(YELLOW); setlinestyle(PS_SOLID, 1); line(center_x, center_y, secondEnd_x, secondEnd_y); // 繪制分鐘 setlinecolor(BLUE); setlinestyle(PS_SOLID, 3); line(center_x, center_y, minuteEnd_x, minuteEnd_y); // 繪制時鐘 setlinecolor(RED); setlinestyle(PS_SOLID, 5); line(center_x, center_y, hoursEnd_x, hoursEnd_y); FlushBatchDraw(); Sleep(50); //隱藏 秒針 setlinecolor(BLACK); line(center_x, center_y, secondEnd_x, secondEnd_y); //隱藏 分針 setlinecolor(BLACK); line(center_x, center_y, minuteEnd_x, minuteEnd_y); //隱藏 時針 setlinecolor(BLACK); line(center_x, center_y, hoursEnd_x, hoursEnd_y); } EndBatchDraw(); _getch(); closegraph(); return 0; }
第一:秒鐘角度轉(zhuǎn)動的講解
1.首先數(shù)學(xué)基礎(chǔ)不錯的都知道 , 一個圓圈 ,一圈的角度是 2π ,所以 一秒就是2π/60 .
2. angle 角度 就是指 和 12點(diǎn)鐘方向的夾角 ,比如 1點(diǎn)和12點(diǎn)的夾角就是30° , 也就是 2π/12 .
第二:講解表盤刻度的繪制
1. 將表盤的刻度分為60份 , 并且都表為小白點(diǎn)
2. 5份刻度記為1小時 ,標(biāo)記為小白圈
3. 15份刻度為一刻鐘=15分鐘.
“C語言如何繪制簡單時鐘小程序”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。