中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

阳新县| 天津市| 城步| 额尔古纳市| 定日县| 贡觉县| 盐源县| 阿城市| 洱源县| 游戏| 湖南省| 贵定县| 托里县| 尚志市| 屯留县| 宁安市| 高碑店市| 上蔡县| 韶关市| 洛阳市| 招远市| 乌拉特前旗| 威信县| 南京市| 中宁县| 岳阳县| 洪泽县| 三穗县| 嘉善县| 甘洛县| 长海县| 竹溪县| 芒康县| 磴口县| 桃江县| 祥云县| 东乡| 灯塔市| 全椒县| 汕尾市| 岢岚县|