1、下載EasyX Library for C++ (http://www.easyx.cn/)
直接下載:EasyX_20151015(beta)
EasyX 繪圖庫目前支持 Visual C++ 6.0 / 2008 / 2010 / 2012。下載的壓縮包解壓縮后,執行 Setup.hta 安裝即可。
2、VS建立控制台應用程序,新建cpp文件,輸入代碼:
// 頭文件 #include <graphics.h> #include <math.h> #include <conio.h> #include <stdio.h> // 宏定義 #define PI 3.141592654 // 函數聲明 void Draw_Dial(); // 繪制靜態的表盤 void Draw_Hand(int hour, int minute, int secend); // 繪制表針 //主函數 int main( void ) { initgraph(640, 480); // 初始化一個圖形界面 640*480 Draw_Dial(); setwritemode(R2_XORPEN); // 設置XOR繪圖模式 SYSTEMTIME time; // 定義一個時間結構體用來保存當前的時間 while (!_kbhit()) { GetLocalTime(&time); // 獲取當前的時間 Draw_Hand(time.wHour,time.wMinute,time.wSecond); // 把表針繪制出來 Sleep(1000); // 間隔1秒(1000毫秒) Draw_Hand(time.wHour, time.wMinute, time.wSecond); // 把表針繪制出來 } closegraph(); // 關閉圖形界面 return 0; } // 繪制靜態的表盤 void Draw_Dial() { setcolor(GREEN); // 繪制邊界 circle(320, 240, 160); // 畫圓函數的參數:320 240坐標 160是圓的半徑大小 circle(320, 240, 60); circle(320, 240, 2); // 圖形界面的輸出文本信息 outtextxy(260, 420, _T("GOOD GOOD STUDY")); outtextxy(283, 440, _T("DAY DAY UP")); // 繪制圖形刻度 setcolor(WHITE); int x, y; for (int i = 0; i < 60; i++) { x = 320 + int(145 * sin(PI * 2 * i / 60)); y = 240 + int(145 * 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); } } // 繪制數字刻度 for (int i = 0; i < 60; i++) { sprintf_s(ch,"%d",i); x = 314 + int(125 * sin(PI * 2 * i / 60)); y = 235 + int(125 * cos(PI * 2 * i / 60)); if (i % 5 == 0) { switch (i) { case 0: outtextxy(x, y, _T("6")); break; case 5: outtextxy(x, y, _T("5")); break; case 10: outtextxy(x, y, _T("4")); break; case 15: outtextxy(x, y, _T("3")); break; case 20: outtextxy(x, y, _T("2")); break; case 25: outtextxy(x, y, _T("1")); break; case 30: outtextxy(x, y, _T("12")); break; case 35: outtextxy(x, y, _T("11")); break; case 40: outtextxy(x, y, _T("10")); break; case 45: outtextxy(x, y, _T("9")); break; case 50: outtextxy(x, y, _T("8")); break; case 55: outtextxy(x, y, _T("7")); break;; default: break; } } } } // 繪制表針 void Draw_Hand(int hour, int minute, int second) { double h_hour, h_minute, h_second; // 三個弧度值 int x_hour, y_hour, x_minute, y_minute, x_second, y_second; // 末端位置 // 計算弧度值 h_second = second * 2 * PI / 60; h_minute = minute * 2 * PI / 60 + h_second / 60; h_hour = hour * 2 * PI / 12 + h_minute / 12; // 計算末端位置 x_second = int(120 * sin(h_second)); y_second=int(120 * cos(h_second)); x_minute = int(100 * sin(h_minute)); y_minute = int(100 * cos(h_minute)); x_hour = int(70 * sin(h_hour)); y_hour = int(70 * cos(h_hour)); // 繪制秒針 setlinestyle(PS_SOLID, 2); // PS_SOILD 實線 2像素 線條的粗細 setcolor(RED); line(320 + x_second, 240 - y_second, 320 - x_second / 3, 240 + y_second / 3); // 繪制分針 setlinestyle(PS_SOLID, 6); // PS_SOILD 實線 2像素 線條的粗細 setcolor(YELLOW); line(320 + x_minute, 240 - y_minute, 320 - x_minute / 5, 240 + y_minute/5); // 繪制時針 setlinestyle(PS_SOLID, 7); // PS_SOILD 實線 2像素 線條的粗細 setcolor(GREEN); line(320 + x_hour, 240 - y_hour, 320 - x_hour / 5, 240 + y_hour/5); }
3、編譯運行