資源簡介
c++利用easyx圖形庫做的還不錯的時鐘!

代碼片段和文件信息
#include?“graphics.h“
#include?“conio.h“
#include?“stdio.h“
#include?“math.h“
#define?PI?3.1415927
#define?W_WIDTH?640
#define?W_HEIGHT?480
void?main()
{
double?a_scale=0;//畫刻度時的弧度
int?n_scale=0;//刻度計數
int?num_scale=0;//刻度數
double?a_increment=6*2*PI/360;//畫刻度時的增量
void?draw_line(int?secondint?minuteint?hour);//畫指針函數申明
initgraph(W_WIDTHW_HEIGHT);//界面初始化
setlinecolor(GREEN);
/*添加填充圖片*/
IMAGE?img;
loadimage(&img_T(“timer.jpg“));
setfillstyle(BS_DIBPATTERNNULL&img);
fillcircle(W_WIDTH/2W_HEIGHT/2160);//繪制鐘表大小
/*畫鐘表刻度*/
for(a_scale;a_scale<=2*PI;a_scale+=a_increment)
{
n_scale++;
if?(!(n_scale%5-1))
{
line(W_WIDTH/2+(int)(140*sin(a_scale))W_HEIGHT/2-(int)(140*cos(a_scale))
W_WIDTH/2+(int)(160*sin(a_scale))W_HEIGHT/2-(int)(160*cos(a_scale)));
}
else
{
line(W_WIDTH/2+(int)(150*sin(a_scale))W_HEIGHT/2-(int)(150*cos(a_scale))
W_WIDTH/2+(int)(160*sin(a_scale))W_HEIGHT/2-(int)(160*cos(a_scale)));
}
}
/*寫鐘表數字*/
for(a_scale=0;a_scale<=2*PI;a_scale+=a_increment*5)
{
setbkmode(TRANSPARENT);
settextcolor(RED);
char?c[2];
sprintf(c“%d“num_scale);//將數字類型轉化成字符類型
outtextxy(W_WIDTH/2+(int)(120*sin(a_scale))W_HEIGHT/2-(int)(120*cos(a_scale))c);
num_scale++;
}
SYSTEMTIME?t_time;//定義系統時間
setwritemode(R2_XORPEN);//設置前景的二元光柵操作模式為R2_XORPEN(屏幕顏色XOR當前顏色)
while?(!kbhit())//判斷是否有鍵盤輸入
{
GetLocalTime(&t_time);
draw_line(t_time.wSecondt_time.wMinutet_time.wHour);//繪制指針
Sleep(1000);
draw_line(t_time.wSecondt_time.wMinutet_time.wHour);//重繪XOR相消,變為背景色
}
closegraph();
}
void?draw_line(int?secondint?minuteint?hour)
{
double?a_seconda_minutea_hour;//指針弧度
int?x_lsecondy_lsecondx_ssecondy_ssecondx_minutey_minutex_houry_hour;//指針端點位置
int?r_lsecond=120r_ssecond=20r_minute=100r_hour=60;//指針半徑
/*指針弧度計算*/
a_second=second*2*PI/60;
a_minute=minute*2*PI/60+a_second/60;
a_hour=hour*2*PI/12+a_minute/12;
/*指針端點坐標計算*/
/*秒針遠端點*/
x_lsecond=W_WIDTH/2+(int)(r_lsecond*sin(a_second));
y_lsecond=W_HEIGHT/2-(int)(r_lsecond*cos(a_second));
/*秒針近端點*/
x_ssecond=W_WIDTH/2+(int)(r_ssecond*sin(a_second+PI));
y_ssecond=W_HEIGHT/2-(int)(r_ssecond*cos(a_second+PI));
x_minute=W_WIDTH/2+(int)(r_minute*sin(a_minute));
y_minute=W_HEIGHT/2-(int)(r_minute*cos(a_minute));
x_hour=W_WIDTH/2+(int)(r_hour*sin(a_hour));
y_hour=W_HEIGHT/2-(int)(r_hour*cos(a_hour));
/*指針畫線*/
setlinecolor(RED);
setlinestyle(PS_SOLID2NULL);
line(W_WIDTH/2W_HEIGHT/2x_lsecondy_lsecond);
line(W_WIDTH/2W_HEIGHT/2x_ssecondy_ssecond);
setlinecolor(YELLOW);
setlinestyle(PS_SOLID4NULL);
line(W_WIDTH/2W_HEIGHT/2x_minutey_minute);
setlinecolor(GREEN);
setlinestyle(PS_SOLID8NULL);
line(W_WIDTH/2W_HEIGHT/2x_houry_hour);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????282704??2013-11-28?09:23??timer\Debug\timer.exe
?????文件?????416984??2013-11-28?09:23??timer\Debug\timer.ilk
?????文件??????18697??2013-11-28?09:23??timer\Debug\timer.obj
????I.A....???4037004??2013-11-26?13:07??timer\Debug\timer.pch
?????文件?????623616??2013-11-28?09:23??timer\Debug\timer.pdb
?????文件?????156672??2013-11-28?09:23??timer\Debug\vc60.idb
?????文件??????77824??2013-11-28?09:23??timer\Debug\vc60.pdb
?????文件???????2994??2013-11-28?09:23??timer\timer.cpp
?????文件???????3389??2013-11-28?09:23??timer\timer.dsp
?????文件????????516??2013-11-28?09:23??timer\timer.dsw
?????文件?????374228??2013-09-09?18:59??timer\timer.jpg
?????文件??????41984??2013-11-28?09:23??timer\timer.ncb
?????文件??????48640??2013-11-28?09:23??timer\timer.opt
?????文件????????747??2013-11-28?09:23??timer\timer.plg
?????目錄??????????0??2013-11-28?09:23??timer\Debug
?????目錄??????????0??2013-11-28?09:23??timer
-----------?---------??----------?-----??----
??????????????6085999????????????????????16
- 上一篇:MFC寫的八皇后演示程序
- 下一篇:VC++多文檔程序可新建文本編輯器和畫圖程序
評論
共有 條評論