Math 以分钟为单位将圆的角度转换为时间
我一直在试图开发一个时钟控制与一个圆圈的帮助。所以如果圆是360度,它是3点钟,如果它是90度,那么它就是12点钟。如果我有圆的角度,我想不出用什么公式来计算hh:mm格式的时间 例如 9点钟是180度。 3点钟是360度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
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点。可能有一种更简洁的方法来做这件事,但这里是你需要做的
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这就是我答案的最终结果。