現在の時刻で更新したいシーンにアナログ時計があります。今のところ、各針の回転を 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 と 5 の間にあるはずの 4 にあり、分針にも同じ問題があります。
- 私が使用している数学が正しいかどうかはわかりません。時間の経過とともに特定できない奇妙な問題が発生しているためです。
これを行うより正確な方法はありますか?