用easyx画电子钟_学完教程9(位运算),再发一帖,画的时钟

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

#include

#include

#define pi 3.1415926

int draw(int hour,int minute,int second)

{

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+1)*2*pi/12+second*pi/21600;

hour_x=300+int(120*sin(rad_hour));

hour_y=300-int(120*cos(rad_hour));

minute_x=300+int(140*sin(rad_minute));

minute_y=300-int(140*cos(rad_minute));

second_x=300+int(165*sin(rad_second));

second_y=300-int(165*cos(rad_second));

setlinestyle(PS_SOLID,NULL,10);

setcolor(YELLOW);

line((2700-hour_x)/8,(2700-hour_y)/8,hour_x,hour_y);

setlinestyle(PS_SOLID,NULL,7);

setcolor(GREEN);

line((2100-minute_x)/6,(2100-minute_y)/6,minute_x,minute_y);

setlinestyle(PS_SOLID,NULL,5);

setcolor(RED);

line((8400-5*second_x)/23,(8400-5*second_y)/23,second_x,second_y);

return 0;

}

int kedu(int x,int y,int r, double rad_1,double rad_2)

{

double du;

int i=0;

char a[12][100]={"1","2","3","4","5","6","7","8","9","10","11","12"};

setcolor(GREEN);

setfont(20,0,"宋体");

for(du=rad_1;du<2*pi+rad_1;du+=rad_1)

outtextxy(x+int(r*sin(du))-7,y-int(r*cos(du))-10,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(300+int(180*sin(du))*17/18,300-int(180*cos(du))*17/18,300+int(180*sin(du)),300-int(180*cos(du)));

else

line(300+int(180*sin(du))*76/77,300-int(180*cos(du))*76/77,300+int(180*sin(du)),300-int(180*cos(du)));

i++;

}

return 0;

}

int main()

{

SYSTEMTIME time;

int x=300,y=300;

double a,b;

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(a,b,RGB(180,180,90));

setcolor(RED);

setfont(24,0,"宋体");

outtextxy(257,210,"许大海祝");

outtextxy(257,240,"春节快乐");

FlushBatchDraw();

kedu(300,300,165,pi/6,pi/30);

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);

draw(time.wHour,time.wMinute,time.wSecond);

FlushBatchDraw();

Sleep(1000);

draw(time.wHour,time.wMinute,time.wSecond);

}

getch();

closegraph();

return 0;

}

//有个问题,怎么加入年份呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值