以前、時計の針が動くものを Canvas で作ったのですが、コードが長くて冗長な感じになってしまいました。
もっと短くできるだろうと思い、挑戦してみました。
コードをシンプルにする
↓clockhand_canvas.js
時計の針の動作を以下にまとめてみました。
function clockHand(rad, hand_length) {
angle = (Math.PI / 180) * rad;
ctx.beginPath();
ctx.moveTo(cx, cy);
ctx.lineTo(
cx + Math.cos(angle) * hand_length,
cy + Math.sin(angle) * hand_length
);
ctx.stroke();
}
そして、それぞれの針の数値はrenderの以下の部分に設定しています。
clockHand(new Date().getHours() * 30 - 90, 100); clockHand(new Date().getMinutes() * 6 - 90, 150); clockHand(new Date().getSeconds() * 6 - 90, 250);
シンプルにしたつもりなのですが、おそらく全然シンプルじゃないですね。。
もっと勉強して、さらに改善できるようにします。