我的场景中有一个模拟时钟,我想用当前时间进行更新。现在我可以通过以 1 秒的间隔计算每只手的旋转来使时钟保持时间,但我看到分针和时针的一些奇怪的结果。
hourHand = scene.getObjectByName('Box001');
minuteHand = scene.getObjectByName('Box002');
secondHand = scene.getObjectByName('Cylinder002');
var d = new Date();
var mins = d.getMinutes();
var secs = d.getSeconds();
var hours = d.getHours();
minuteHand.rotateY((-mins / 60) * (2 * Math.PI));
secondHand.rotateY(((mins /60) + (-secs / 3600)) * (2 * Math.PI));
hourHand.rotateY(((-hours / 12) + (mins / 720)) * (2 * Math.PI));
setInterval(function(){
minuteHand.rotateY((2 * Math.PI) / -3600);
secondHand.rotateY((2 * Math.PI) / -60);
hourHand.rotateY((2 * Math.PI) / (-3600 * 12));
},1000);
我遇到的问题是:
- 如果时间是 4:30,时针在 4 时应该在 4 和 5 之间,分针也有同样的问题
- 我不确定我使用的数学是否正确,因为随着时间的推移,我发现了一些我无法确定的奇怪问题。
有没有更准确的方法来做到这一点?