易码技术论坛

 找回密码
 加入易码
搜索
查看: 724242|回复: 10

[归档] [分享]我写的石英表程序

[复制链接]
发表于 2006-7-13 21:37:00 | 显示全部楼层
果然够简单,不过降低了一些代码的可读性。
发表于 2006-7-14 20:11:00 | 显示全部楼层
不错
发表于 2006-7-28 19:55:14 | 显示全部楼层
呵呵,够精简啊!!!
发表于 2006-8-3 09:25:22 | 显示全部楼层
while(deg>=360) deg =deg-360;
是不是可以写成
deg=deg%360;
发表于 2006-8-3 10:08:28 | 显示全部楼层
貌似可以。。
 楼主| 发表于 2006-8-3 10:13:25 | 显示全部楼层
确实如上上楼所说,
大意了,呵呵
发表于 2006-8-8 14:29:06 | 显示全部楼层
gooooooooood!我顶了!
发表于 2006-8-11 10:42:41 | 显示全部楼层
汗~~~有难度。。。
感觉又像回到了改百战天虫的时候。
也是关于度数的部分。。。
发表于 2006-8-11 10:47:27 | 显示全部楼层
基本上明白了。。。
只是编译出来这个画面比较粗糙。。。。
发表于 2006-8-19 11:07:00 | 显示全部楼层
我数学不好~但这东西我还是会去查书的~呵呵~
 楼主| 发表于 2006-7-13 18:06:12 | 显示全部楼层 |阅读模式
没有用到Sin,Cos值小于0的操作,应该可以在TC800上运行

  1. /**
  2. @石英表源代码
  3. @By Eastsun
  4. */
  5. void drawLine(int x,int y,int sl,int el,int deg){
  6.     int dx,dy;
  7.     while(deg>=360) deg =deg-360;
  8.     if(deg<90)      { dx =1; dy =-1; deg =90 -deg;}
  9.     else if(deg<180){ dx =1; dy =1;  deg =deg -90;}
  10.     else if(deg<270){ dx =-1; dy =1; deg =270 -deg;}
  11.     else            { dx =-1; dy =-1; deg=deg-270;}
  12.     Line(x+dx*sl*Cos(deg)/1024,y+dy*sl*Sin(deg)/1024,
  13.          x+dx*el*Cos(deg)/1024,y+dy*el*Sin(deg)/1024,0x41);
  14. }
  15. void watch(int x,int y,int len){//中心坐标,钟表半径
  16.     char time[8],ms;
  17.     int  sl,ml,hl,sec,n;
  18.     sec = -1;
  19.     sl  = 3*len/4;              //这儿设定分针,秒针,时针的长度
  20.     ml  = 2*sl/3;
  21.     hl  = ml/2;
  22.     while(Inkey()-0x1b){
  23.         GetTime(time);
  24.         if(time[6]-sec){
  25.             sec =time[6];
  26.             ClearScreen();
  27.             for(n =0;n<60;n++)
  28.                if(n%5) drawLine(x,y,len-1,len,n*6);
  29.                else    drawLine(x,y,len-3,len,n*6);
  30.             drawLine(x,y,0,sl,time[6]*6);
  31.             drawLine(x,y,0,ml,time[5]*6);
  32.             drawLine(x,y,0,hl,time[4]*30+time[5]/2);
  33.             Refresh();
  34.             Circle(x,y,len,0,1);
  35.         }
  36.     }
  37. }
  38. void main(){
  39.     watch(80,40,30);
  40. }
  41.             
  42.             
  43.             
复制代码

[此贴子已经被作者于2006-7-13 19:04:50编辑过]

您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-3-29 23:10 , Processed in 0.010004 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表