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

Math 以分钟为单位将圆的角度转换为时间,math,time,geometry,clock,angle,Math,Time,Geometry,Clock,Angle,我一直在试图开发一个时钟控制与一个圆圈的帮助。所以如果圆是360度,它是3点钟,如果它是90度,那么它就是12点钟。如果我有圆的角度,我想不出用什么公式来计算hh:mm格式的时间 例如 9点钟是180度。 3点钟是360度 12点钟是90度,依此类推。首先假设12点钟是0度。这是有意义的,因为当昼夜不停地转一圈时,度数会增加,小时数也会增加(没有环绕),所以我们可以将小时数乘以一个常数 要让它在12点再次达到360,我们需要将小时数乘以360/12=30 现在3点是90度,12点是0度 减去90

我一直在试图开发一个时钟控制与一个圆圈的帮助。所以如果圆是360度,它是3点钟,如果它是90度,那么它就是12点钟。如果我有圆的角度,我想不出用什么公式来计算hh:mm格式的时间

例如

9点钟是180度。 3点钟是360度
12点钟是90度,依此类推。

首先假设12点钟是0度。这是有意义的,因为当昼夜不停地转一圈时,度数会增加,小时数也会增加(没有环绕),所以我们可以将小时数乘以一个常数

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

现在3点是90度,12点是0度

减去90我们有0点的3点和-90点的12点

然后将其设为负数,根据需要,我们在0时有3点,在90时有12点


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

你可以在维基百科上查看这些公式,它们可能会有帮助:

但除此之外,你可以做一些简单的事情,比如,度/360*12抵消


例如,如果我们将360度设置为12点,那么你有90度。你会得到的。90/360 * 12 = 3. 那就是3点钟了。然后你可以加上偏移量,在你的例子中是3,所以它是6点。

可能有一种更简洁的方法来做这件事,但这里是你需要做的

  • 使用3-(1/30)*(角度mod 360)计算时间的十进制值
  • 如果结果小于零,则加12
  • 取整数部分作为小时数,将0替换为12
  • 取余数(第1步计算的小数部分)乘以60,转换为分钟
  • 设置小时和分钟的格式,如果小于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;
    }
    
    公共静态字符串convertAngleToTimeString(浮动角度){
    字符串时间=”;
    浮点小数=3.0f-(1.0f/30.0f)*(角度%360);
    if(小数值<0)
    小数位数+=12.0f;
    整数小时=(整数)小数;
    如果(小时==0)
    小时=12;
    时间+=(小时数<10?“0”+小时数:小时数)+“:”;
    整数分钟=(整数)(小数*60)%60;
    时间+=分钟<10?“0”+分钟:分钟;
    返回时间;
    }
    
    hrs=
    日期+%H
    \H>> 最小值=
    日期+%M
    #最小值>> dim=
    echo“刻度=2;$hrs*60+$min”| bc
    #以分钟为单位的天>> dis=
    echo“刻度=2;$dim*60+$sec”| bc
    #以秒为单位的天>> did=
    echo“scale=2;$dis/240”| bc
    #日度>>

    行星公转是每240秒一度

    我的工作是制作苏美尔时间系统。 一个苏美尔小时相当于两个当前小时或30转度。搜索sexagesimal系统。
    玩得开心

    如果0度从3点钟开始,然后角度逆时针移动会怎么样?@Vinita这就是我答案的最终结果。