设计一个时钟,如何计算各个指针的角度??

静心天涯 发布于 2013/08/04 14:02
阅读 1K+
收藏 0

在学习java时,需要设计一个时钟,不过不知道如何去计算各个指针的角度???在网上找到下面的一段代码,不过看不懂,想请教一下大家,这样计算遵循了什么的规则,或者说它是如何计算出来的???谢谢

        int millisecond = calendar.get(MILLISECOND);
        int sec = calendar.get(SECOND);
        int minutes = calendar.get(MINUTE);
        int hours = calendar.get(HOUR);
        double secAngle = (60 - sec) * 6 - (millisecond / 150); // 秒针角度
        int minutesAngle = (60 - minutes) * 6;// 分针角度
        int hoursAngle = (12 - hours) * 360 / 12 - (minutes / 2);// 时针角度
        // 计算秒针、分针、时针指向坐标
        int secX = (int) (secLen * Math.sin(Math.toRadians(secAngle)));
        int secY = (int) (secLen * Math.cos(Math.toRadians(secAngle)));
        int minutesX = (int) (minuesLen * Math.sin(Math.toRadians(minutesAngle)));
        int minutesY = (int) (minuesLen * Math.cos(Math.toRadians(minutesAngle)));
        int hoursX = (int) (hoursLen * Math.sin(Math.toRadians(hoursAngle)));
        int hoursY = (int) (hoursLen * Math.cos(Math.toRadians(hoursAngle)));
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);

加载中
0
小耶果
小耶果

一个圆是360,也就是2PI,12个刻度,每个刻度30度,30度/5 ,每分钟6度.圆心一点,每6度一点,你要计算每分钟以圆心旋转6度的点坐标,利用旋转公式即可,如果用系统的cos,sin注意转换成弧度.

0
明月照大江
明月照大江
这个不是初中数学么~
0
南湖船老大
南湖船老大
这个不是初中数学么~
0
jeffsoft
jeffsoft

别人是求教,不需要别人的数落,小学没有毕业,就不能编程了吗?这样会打击别人的积极性的。一句包容,会给别人无限的美好!赠人玫瑰,手留余香。多点为别人作想,多点为社区作想,多点为编程界作想!

哈哈,可能我有点过了,对不起了!

0
杨同学
杨同学
算一下现在的位置是一圈的几分之几,例如说你算时针的位置,时针一圈是12个小时,那么3:40的时针位置就是(3 + 40/60) / 12 * 360度,这个就是时针相对于12点钟位置的角度
0
OSC首席键客
OSC首席键客

引用来自“好大的凶兆”的答案

这个不是初中数学么~
这么久的东西,没去看,根本就不会记得。
狂飙的小蜗牛
狂飙的小蜗牛
楼上的刚初中毕业,所以记得很清楚
返回顶部
顶部