If Second(Now) = LastSecond Then Exit Sub
LastSecond = Second(Now)
'定位时针,分针,秒针
Angle = -0.5236 * (15 - (Hour(Now) + Minute(Now) / 60))
Text1.Text = CStr(Angle)
hourLine.X2 = Cos(Angle) * 500 + X0
hourLine.Y2 = Sin(Angle) * 500 + Y0
Angle = -0.1047 * (75 - (Minute(Now) + Second(Now) / 60))
Text2.Text = CStr(Angle)
minuteLine.X2 = Cos(Angle) * 700 + X0
minuteLine.Y2 = Sin(Angle) * 700 + Y0
Angle = -0.1047 * (75 - Second(Now))
Text3.Text = CStr(Angle)
secondLine.X2 = Cos(Angle) * 800 + X0
secondLine.Y2 = Sin(Angle) * 800 + Y0
感觉计算时钟指针角度的方法很诡异啊,具体什么意思呢?高手给讲解以下,不胜感激
LastSecond = Second(Now)
'定位时针,分针,秒针
Angle = -0.5236 * (15 - (Hour(Now) + Minute(Now) / 60))
Text1.Text = CStr(Angle)
hourLine.X2 = Cos(Angle) * 500 + X0
hourLine.Y2 = Sin(Angle) * 500 + Y0
Angle = -0.1047 * (75 - (Minute(Now) + Second(Now) / 60))
Text2.Text = CStr(Angle)
minuteLine.X2 = Cos(Angle) * 700 + X0
minuteLine.Y2 = Sin(Angle) * 700 + Y0
Angle = -0.1047 * (75 - Second(Now))
Text3.Text = CStr(Angle)
secondLine.X2 = Cos(Angle) * 800 + X0
secondLine.Y2 = Sin(Angle) * 800 + Y0
感觉计算时钟指针角度的方法很诡异啊,具体什么意思呢?高手给讲解以下,不胜感激
是什么意思?为什么要这么定为呢?实在是不明白。这个0.5236是什么?15又是什么?为什么要用15减?为什么要乘-0.5236
设x (360/6)=(2*pi/x)。得出x为0.1047 。而0.5236就为0.1047的一半。××××××××××
至于15这个数的问题我认为可以把-0.5236 * (15 - (Hour(Now) + Minute(Now) / 60))看成 (-0.5236*15)再加上 (- (Hour(Now) + Minute(Now) / 60))*(-0.5236)。这是小学知识了。
Sin(-0.5236*15)恰好约等于-1。上面还有什么Cos(75* (-0.1047 ))也等于负一。所以75和15只不过是凑数,你也可以换其他的数试试(如27)