将 24 小时时间转换为旋转值

Posted

技术标签:

【中文标题】将 24 小时时间转换为旋转值【英文标题】:convert 24 hour time into rotational value 【发布时间】:2021-09-22 02:42:58 【问题描述】:

好吧,有点奇怪的问题,我已经使用 Date() 和 Date.getTime() 实现了一个实时系统,并且我在我的项目 (mz3d) 上安装了一个插件,我知道如何使用它,但是我遇到了太阳的问题,

我需要将 getTime() 中的 24 小时时间转换为 mz3d 的太阳的旋转值。 但是,太阳在天空中的最高位置是 0 度,而在地板下方是 180 度。

我的代码是:

//variables
var d = new Date();
var hr= d.getHours();
var mn= d.getMinutes();
//conversion
var sun;
//mz3d command
mz3d.command('sun pitch',sun,0);

我将如何计算它,所以 12 to 是 0 度,24 或 0 是 180 度?

【问题讨论】:

它只是成比例的:360° = 24 小时,1° = 15 分钟。因此,中午 (12:00) 后每隔 15 分钟,太阳从垂直方向移动 1°(21:00 = 90°、24:00/00:00 = 180° 等)。当然,在现实生活中,它的工作原理并不完全如此,但可能足以满足您的需求。 【参考方案1】:

感谢 RobG,我发现以下代码有效

var d = new Date();
minSinceMidnight = d.getTime()- d.setHours(
    0, 0, 0, 0
);
minSinceMidnight = Math.round(
    minSinceMidnight / 60000
);
var math1 = minSinceMidnight/1440;
var math2 = math1*360
//console.log(d);
//console.log(minSinceMidnight);
//console.log(math2);
var sun = math2+180
//console.log(
//    "sun pos = ", sun
//);
mz3d.command('sun pitch',sun,0);

【讨论】:

以上是关于将 24 小时时间转换为旋转值的主要内容,如果未能解决你的问题,请参考以下文章

将 24 小时值转换为 HHMMSS - 时间

如何将具有 24 小时值的日期/时间字符串转换为 Pandas 中的日期时间?

Javascript:将 24 小时时间字符串转换为 12 小时时间,上午/下午且无时区

将 12 小时转换为 24 小时时间

C#如何将DateTime的12小时格式转换为24小时时间格式????

如何将日期/时间从 24 小时格式转换为 12 小时 AM/PM? [复制]