0

好的,有点奇怪的问题,我已经使用 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 到 0 度,24 或 0 是 180 度?

4

1 回答 1

0

感谢 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);
于 2021-09-22T09:48:36.610 回答