模拟时钟的问题

上学期中旬的实训未解决的问题:1、时针不能表现分钟出的区别,2、有时会乱摆动。

数学公式没有错误,怎么调也是那个问题。

x = cos (2*PI/$);

y = sin (2*PI/$);

这个是单位圆上的指针的方向。然后乘上系数,就能构造出长度各异的时针分针和秒针。

变量名有点乱。。解释一下

secondofR是秒针。。同理理解分针和时针

1问题是因为(int)(Init.y/4)*sin(TWOPI/12*(DateTime.wHour - 3 + (DateTime.wMinute)/60) );单单一个60把(DateTime.wMinute)/60) )的运算结果搞成整数了,由于分钟数DateTime.wMinute不可能大于60,这就造成(DateTime.wMinute)/60) )的结果不是0就是1了,导致(DateTime.wHour - 3 + (DateTime.wMinute)/60) 换算出来的小时不是比较精确的小数而是浮动在DateTime.wHour+/-1的整数,导致指针突然摆动5格(30度)。

这是一个很容易犯的错误,与此相应的还有if(a==0.1)的问题。(补充)

2问题是因为把分钟换算成小时的时候加的位置搞错了,对时钟指针角度换算公式理解不到位。

原文地址:https://www.cnblogs.com/ppazhang/p/2913104.html