将 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 小时值的日期/时间字符串转换为 Pandas 中的日期时间?
Javascript:将 24 小时时间字符串转换为 12 小时时间,上午/下午且无时区