将圆的角度转换为以分钟为单位的时间

时间:2013-09-27 17:21:24

标签: math time geometry clock angle

我一直试图在一个圆圈的帮助下开发一个时钟控制。因此,如果圆圈处于360度的3'O时钟,如果它的90度,那么它将是12'o时钟。如果我有圆的角度,我无法弄清楚用什么公式可以用hh:mm格式查找时间。

例如

9'o时钟是180度。 3'o时钟是360度 12'o时钟是90度,依此类推。

4 个答案:

答案 0 :(得分:2)

这可能是一种更简洁的方法,但这就是你需要做的事情。

        
  1. 使用 3 - (1/30)*(角度模型360)
  2. 计算时间的十进制值     
  3. 如果结果小于零,请添加12。
  4.     
  5. 将整数部分用作小时数,将值0替换为12。
  6.     
  7. 取剩余部分(步骤1中计算的小数部分)并乘以60转换为分钟。
  8.     
  9. 格式化您的小时和分钟,如果小于10,则使用前导零填充,并将它们与冒号组合。
  10. java中的示例实现:

    public static String convertAngleToTimeString(float angle) {
        String time = "";
        float decimalValue = 3.0f - (1.0f/30.0f) * (angle % 360);
        if (decimalValue < 0)
            decimalValue += 12.0f;
    
        int hours = (int)decimalValue;
        if (hours == 0)
            hours = 12;
        time += (hours < 10 ? "0" + hours: hours) + ":";
        int minutes = (int)(decimalValue * 60) % 60; 
        time += minutes < 10 ? "0" + minutes: minutes;
        return time;
    }
    

答案 1 :(得分:1)

首先假设12点是0度。这是有道理的,因为当一次昼夜不停时,度数会增加,小时数也会增加(没有环绕),所以也许我们可以将小时乘以常数。

要让它在12点再次达到360度,我们需要将小时数乘以360/12 = 30

所以现在3点是90度,12点是0点。

减去90 ,我们在0点和12点钟位于-90点钟位置。

然后使其为负,我们按照要求在0点和12点钟位置设置为3点钟。

我们走了,现在你只需要把它们放在一起。

答案 2 :(得分:1)

您可以在维基百科上查看这些公式,他们可能会提供帮助:http://en.wikipedia.org/wiki/Clock_angle_problem

但除此之外,你可以做一些简单的事情,例如度/ 360 * 12. +偏移。

例如,如果我们设置360度是12点,你有90度。你会得到的。 90/360 * 12 = 3.那就是3'o时钟。然后你可以添加你的偏移量,在你的情况下是3,所以它将是6点钟。

答案 3 :(得分:0)

hrs = date +%H #H&gt;&gt; min = date +%M #min&gt;&gt; dim = echo "scale=2; $hrs * 60 + $min" | bc #day in minutes&gt;&gt; dis = echo "scale=2; $dim * 60 + $sec" | bc #day in seconds&gt;&gt; did = echo "scale=2; $dis / 240" | bc #day in degree&gt;&gt;

行星革命是每240秒一度。

我努力做一个sumerian-time-sys。 一个苏美尔时代相当于两个当前的HRS或30个革命度。寻找性系统。 玩得开心!