91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

發布時間:2022-06-14 13:49:36 來源:億速云 閱讀:241 作者:iii 欄目:開發技術

本篇內容介紹了“C語言如何繪制簡單時鐘小程序”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

先貼效果圖給大家先看看

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

基本機制是通過獲取系統的時鐘去繪制圖線進行展示

貼出代碼 ,大家可以直接使用的 .程序我進一步的講解

#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; //獲取系統的時間
 
    // 秒針屬性
    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);
 
        //繪制中心坐標
        //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); // 小白點
            }
        }
 
        
        //轉動秒針
        secondAngle = ti.wSecond * 2 * pi / 60;    //    2 * pi / 60 =一秒鐘走的角度   ti.wSecond  =系統當前秒
        secondEnd_x = center_x + secondLenth * sin(secondAngle);
        secondEnd_y = center_y - secondLenth * cos(secondAngle);
 
        //轉動分鐘
        minuteAngle = ti.wMinute * 2 * pi / 60  + secondAngle / 60;
        minuteEnd_x = center_x + minuteLenth * sin(minuteAngle);
        minuteEnd_y = center_y - minuteLenth * cos(minuteAngle);
 
        //轉動時鐘
        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;
}

第一:秒鐘角度轉動的講解

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

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

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

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

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

1. 將表盤的刻度分為60份 , 并且都表為小白點

2. 5份刻度記為1小時 ,標記為小白圈

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

仙桃市| 呼伦贝尔市| 福海县| 岚皋县| 肥西县| 毕节市| 阿拉善右旗| 浪卡子县| 苏尼特右旗| 邻水| 皮山县| 承德市| 仁布县| 泽普县| 老河口市| 防城港市| 同心县| 武功县| 芷江| 怀集县| 横峰县| 闽侯县| 新营市| 北票市| 宝应县| 界首市| 蒙城县| 通化市| 南涧| 安宁市| 中牟县| 兴文县| 龙岩市| 连云港市| 阜城县| 留坝县| 湖北省| 农安县| 九龙坡区| 玉山县| 波密县|