溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C語言如何繪制簡單時鐘小程序

發(fā)布時間:2022-06-14 13:49:36 來源:億速云 閱讀:239 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“C語言如何繪制簡單時鐘小程序”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

先貼效果圖給大家先看看

C語言如何繪制簡單時鐘小程序

基本機(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)動的講解

C語言如何繪制簡單時鐘小程序

1.首先數(shù)學(xué)基礎(chǔ)不錯的都知道 , 一個圓圈 ,一圈的角度是 2&pi; ,所以 一秒就是2&pi;/60 .

2. angle 角度 就是指 和 12點(diǎn)鐘方向的夾角 ,比如 1點(diǎn)和12點(diǎn)的夾角就是30&deg; , 也就是 2&pi;/12 .

第二:講解表盤刻度的繪制

C語言如何繪制簡單時鐘小程序

1. 將表盤的刻度分為60份 , 并且都表為小白點(diǎn)

2. 5份刻度記為1小時 ,標(biāo)記為小白圈

3. 15份刻度為一刻鐘=15分鐘.

“C語言如何繪制簡單時鐘小程序”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(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)容。

AI