- 注册时间
- 2004-8-29
- 最后登录
- 1970-1-1
|
没有用到Sin,Cos值小于0的操作,应该可以在TC800上运行
- /**
- @石英表源代码
- @By Eastsun
- */
- void drawLine(int x,int y,int sl,int el,int deg){
- int dx,dy;
- while(deg>=360) deg =deg-360;
- if(deg<90) { dx =1; dy =-1; deg =90 -deg;}
- else if(deg<180){ dx =1; dy =1; deg =deg -90;}
- else if(deg<270){ dx =-1; dy =1; deg =270 -deg;}
- else { dx =-1; dy =-1; deg=deg-270;}
- Line(x+dx*sl*Cos(deg)/1024,y+dy*sl*Sin(deg)/1024,
- x+dx*el*Cos(deg)/1024,y+dy*el*Sin(deg)/1024,0x41);
- }
- void watch(int x,int y,int len){//中心坐标,钟表半径
- char time[8],ms;
- int sl,ml,hl,sec,n;
- sec = -1;
- sl = 3*len/4; //这儿设定分针,秒针,时针的长度
- ml = 2*sl/3;
- hl = ml/2;
- while(Inkey()-0x1b){
- GetTime(time);
- if(time[6]-sec){
- sec =time[6];
- ClearScreen();
- for(n =0;n<60;n++)
- if(n%5) drawLine(x,y,len-1,len,n*6);
- else drawLine(x,y,len-3,len,n*6);
- drawLine(x,y,0,sl,time[6]*6);
- drawLine(x,y,0,ml,time[5]*6);
- drawLine(x,y,0,hl,time[4]*30+time[5]/2);
- Refresh();
- Circle(x,y,len,0,1);
- }
- }
- }
- void main(){
- watch(80,40,30);
- }
-
-
-
复制代码
[此贴子已经被作者于2006-7-13 19:04:50编辑过]
|
|