#include<graphics.h>
#include<conio.h>
#include<math.h>
#define pi 3.1415926
int draw(int hour,int minute,int second,int length_h,int length_m,int length_s,int x,int y,int wide_h,int wide_m,int wide_s)
{
double rad_hour,rad_minute,rad_second;
int hour_x,hour_y,minute_x,minute_y,second_x,second_y;
rad_second=second*2*pi/60;
rad_minute=minute*2*pi/60+second*2*pi/3600;
rad_hour=(hour)*2*pi/12+minute*pi/360+second*pi/21600;
hour_x=x+int(length_h*sin(rad_hour));
hour_y=y-int(length_h*cos(rad_hour));
minute_x=x+int(length_m*sin(rad_minute));
minute_y=y-int(length_m*cos(rad_minute));
second_x=x+int(length_s*sin(rad_second));
second_y=y-int(length_s*cos(rad_second));
setlinestyle(PS_SOLID,NULL,wide_h);
setcolor(YELLOW);
line(x-(hour_x-x)/8,y-(hour_y-y)/8,hour_x,hour_y);
setlinestyle(PS_SOLID,NULL,wide_m);
setcolor(GREEN);
line(x-(minute_x-x)/6,y-(minute_y-y)/6,minute_x,minute_y);
setlinestyle(PS_SOLID,NULL,wide_s);
setcolor(RED);
line(x-(second_x-x)/5,y-(second_y-y)/5,second_x,second_y);
return 0;
}
int kedu(int x,int y,int r, double rad_1,double rad_2,int zi,int center_r,int m,int n)
{
double du;
int i=0;
char a[12][100]={"1","2","3","4","5","6","7","8","9","10","11","12"};
setcolor(GREEN);
setfont(zi,0,"宋体");
for(du=rad_1;du<2*pi+rad_1;du+=rad_1)
outtextxy(x+int(r*sin(du))-m,y-int(r*cos(du))-n,a[i++]);
i=0;
setlinestyle(PS_SOLID,NULL,3);
setcolor(RED);
for(du=0;du<2*pi;du+=rad_2)
{
if(i%5==0)
line(x+int(center_r*sin(du))*17/18,y-int(center_r*cos(du))*17/18,x+int(center_r*sin(du)),y-int(center_r*cos(du)));
else
line(x+int(center_r*sin(du))*76/77,y-int(center_r*cos(du))*76/77,x+int(center_r*sin(du)),y-int(center_r*cos(du)));
i++;
}
return 0;
}
int main()
{
SYSTEMTIME time;
int x=300,y=300,k=0;
double a,b;
char data[10][100];
initgraph(600,600) ;
setbkcolor(WHITE);
cleardevice();
setbkmode(TRANSPARENT);
BeginBatchDraw();
setcolor(RED);
circle(300,300,2);
circle(300,300,1);
circle(300,300,3);
setcolor(RGB(127,127,127));
circle(300,300,180);
for(a=120;a<=480;a++)
for(b=120;b<=480;b++)
if((a-300)*(a-300)+(b-300)*(b-300)<=180*180)
putpixel(int(a),int(b),RGB(180,180,90));
setcolor(RED);
setfont(24,0,"宋体");
outtextxy(253,160,"新年时钟");
outtextxy(250,380,"全国人民");
outtextxy(237,410,"春 节 快 乐");
FlushBatchDraw();
kedu(300,300,165,pi/6,pi/30,20,180,7,10);
kedu(220,330,50,pi/6,pi/30,11,60,2,3);
kedu(380,330,50,pi/6,pi/30,11,60,2,3);
for(a=100;a<=500;a++)
for(b=100;b<=480;b++)
{
if((a-300)*(a-300)+(b-300)*(b-300)>180*180&&(a-320)*(a-320)+(b-300)*(b-300)<=180*180)
putpixel(int(a),int(b),RGB(127,127,127));
else if(int((a-300)*(a-300)+(b-300)*(b-300))>180*180&&int((a-280)*(a-280)+(b-300)*(b-300))<=180*180)
putpixel(int(a),int(b),RGB(127,127,127));
}
setwritemode(R2_XORPEN);
while(!kbhit())
{
GetLocalTime(&time);
setfont(20,0,"宋体");
itoa(time.wYear,data[2],10);
itoa(time.wMonth,data[0],10);
itoa(time.wDay,data[1],10);
outtextxy(267,185,data[2]);
outtextxy(325,185,"年");
outtextxy(257,220,data[0]);
outtextxy(273,220,"月");
outtextxy(300,220,data[1]);
outtextxy(323,220,"日");
draw(time.wHour,time.wMinute,time.wSecond,126,140,165,300,300,10,7,5);
draw(time.wHour,time.wMinute,time.wSecond,34,42,50,220,330,4,3,2);
draw(time.wHour,time.wMinute,time.wSecond,34,42,50,380,330,4,3,2);
FlushBatchDraw();
if(k==0) saveimage("D:\\时钟.jpg");
Sleep(1000);
itoa(time.wYear,data[2],10);
itoa(time.wMonth,data[0],10);
itoa(time.wDay,data[1],10);
outtextxy(267,185,data[2]);
outtextxy(325,185,"年");
outtextxy(257,220,data[0]);
outtextxy(273,220,"月");
outtextxy(300,220,data[1]);
outtextxy(323,220,"日");
draw(time.wHour,time.wMinute,time.wSecond,126,140,165,300,300,10,7,5);
draw(time.wHour,time.wMinute,time.wSecond,34,42,50,220,330,4,3,2);
draw(time.wHour,time.wMinute,time.wSecond,34,42,50,380,330,4,3,2);
k=1;
}
getch();
closegraph();
return 0;
}
#include<conio.h>
#include<math.h>
#define pi 3.1415926
int draw(int hour,int minute,int second,int length_h,int length_m,int length_s,int x,int y,int wide_h,int wide_m,int wide_s)
{
double rad_hour,rad_minute,rad_second;
int hour_x,hour_y,minute_x,minute_y,second_x,second_y;
rad_second=second*2*pi/60;
rad_minute=minute*2*pi/60+second*2*pi/3600;
rad_hour=(hour)*2*pi/12+minute*pi/360+second*pi/21600;
hour_x=x+int(length_h*sin(rad_hour));
hour_y=y-int(length_h*cos(rad_hour));
minute_x=x+int(length_m*sin(rad_minute));
minute_y=y-int(length_m*cos(rad_minute));
second_x=x+int(length_s*sin(rad_second));
second_y=y-int(length_s*cos(rad_second));
setlinestyle(PS_SOLID,NULL,wide_h);
setcolor(YELLOW);
line(x-(hour_x-x)/8,y-(hour_y-y)/8,hour_x,hour_y);
setlinestyle(PS_SOLID,NULL,wide_m);
setcolor(GREEN);
line(x-(minute_x-x)/6,y-(minute_y-y)/6,minute_x,minute_y);
setlinestyle(PS_SOLID,NULL,wide_s);
setcolor(RED);
line(x-(second_x-x)/5,y-(second_y-y)/5,second_x,second_y);
return 0;
}
int kedu(int x,int y,int r, double rad_1,double rad_2,int zi,int center_r,int m,int n)
{
double du;
int i=0;
char a[12][100]={"1","2","3","4","5","6","7","8","9","10","11","12"};
setcolor(GREEN);
setfont(zi,0,"宋体");
for(du=rad_1;du<2*pi+rad_1;du+=rad_1)
outtextxy(x+int(r*sin(du))-m,y-int(r*cos(du))-n,a[i++]);
i=0;
setlinestyle(PS_SOLID,NULL,3);
setcolor(RED);
for(du=0;du<2*pi;du+=rad_2)
{
if(i%5==0)
line(x+int(center_r*sin(du))*17/18,y-int(center_r*cos(du))*17/18,x+int(center_r*sin(du)),y-int(center_r*cos(du)));
else
line(x+int(center_r*sin(du))*76/77,y-int(center_r*cos(du))*76/77,x+int(center_r*sin(du)),y-int(center_r*cos(du)));
i++;
}
return 0;
}
int main()
{
SYSTEMTIME time;
int x=300,y=300,k=0;
double a,b;
char data[10][100];
initgraph(600,600) ;
setbkcolor(WHITE);
cleardevice();
setbkmode(TRANSPARENT);
BeginBatchDraw();
setcolor(RED);
circle(300,300,2);
circle(300,300,1);
circle(300,300,3);
setcolor(RGB(127,127,127));
circle(300,300,180);
for(a=120;a<=480;a++)
for(b=120;b<=480;b++)
if((a-300)*(a-300)+(b-300)*(b-300)<=180*180)
putpixel(int(a),int(b),RGB(180,180,90));
setcolor(RED);
setfont(24,0,"宋体");
outtextxy(253,160,"新年时钟");
outtextxy(250,380,"全国人民");
outtextxy(237,410,"春 节 快 乐");
FlushBatchDraw();
kedu(300,300,165,pi/6,pi/30,20,180,7,10);
kedu(220,330,50,pi/6,pi/30,11,60,2,3);
kedu(380,330,50,pi/6,pi/30,11,60,2,3);
for(a=100;a<=500;a++)
for(b=100;b<=480;b++)
{
if((a-300)*(a-300)+(b-300)*(b-300)>180*180&&(a-320)*(a-320)+(b-300)*(b-300)<=180*180)
putpixel(int(a),int(b),RGB(127,127,127));
else if(int((a-300)*(a-300)+(b-300)*(b-300))>180*180&&int((a-280)*(a-280)+(b-300)*(b-300))<=180*180)
putpixel(int(a),int(b),RGB(127,127,127));
}
setwritemode(R2_XORPEN);
while(!kbhit())
{
GetLocalTime(&time);
setfont(20,0,"宋体");
itoa(time.wYear,data[2],10);
itoa(time.wMonth,data[0],10);
itoa(time.wDay,data[1],10);
outtextxy(267,185,data[2]);
outtextxy(325,185,"年");
outtextxy(257,220,data[0]);
outtextxy(273,220,"月");
outtextxy(300,220,data[1]);
outtextxy(323,220,"日");
draw(time.wHour,time.wMinute,time.wSecond,126,140,165,300,300,10,7,5);
draw(time.wHour,time.wMinute,time.wSecond,34,42,50,220,330,4,3,2);
draw(time.wHour,time.wMinute,time.wSecond,34,42,50,380,330,4,3,2);
FlushBatchDraw();
if(k==0) saveimage("D:\\时钟.jpg");
Sleep(1000);
itoa(time.wYear,data[2],10);
itoa(time.wMonth,data[0],10);
itoa(time.wDay,data[1],10);
outtextxy(267,185,data[2]);
outtextxy(325,185,"年");
outtextxy(257,220,data[0]);
outtextxy(273,220,"月");
outtextxy(300,220,data[1]);
outtextxy(323,220,"日");
draw(time.wHour,time.wMinute,time.wSecond,126,140,165,300,300,10,7,5);
draw(time.wHour,time.wMinute,time.wSecond,34,42,50,220,330,4,3,2);
draw(time.wHour,time.wMinute,time.wSecond,34,42,50,380,330,4,3,2);
k=1;
}
getch();
closegraph();
return 0;
}