1

明らかに、私のトリガーは少し錆びています。時計をラップする分を取得するにはどうすればよいですか?

codepen [更新: codepen は jsfiddle のようにバージョン管理されていないことを忘れていました。この「ペン」は進行中の作業であり、この質問の時点で私が抱えていた問題を表すものではなくなりました]

Javascript:

var r = $('.face').width()/2;
var j = r-18;
for(var min=0; min<60; min += 5) {
  var str = min < 10 ? '0'+min : String(min);
  var x = j*Math.sin(Math.PI*2*(min/60));
  var y = j*Math.cos(Math.PI*2*(min/60));
  console.log(x);
  $('<div>',{'class':'time'})
    .text(str)
    .css({
      marginLeft: (x+r-12)+'px',
      marginTop: (-y+r-12)+'px'
    })
    .appendTo('.face');
}
4

3 に答える 3

0

min が 0 から 60 の間であると仮定し、円には 360 度があることに注意してください。

var degToMin = 360/60; // 6
var minDeg = min * degToMin; // this will tell us how many degrees around the circle the minutes are
var minRad = minDeg * (Math.PI/180); // convert to radians
var x = j*Math.cos(minRad); // cos is the x coord, while sin is the y coord
var y = j*Math.sin(minRad);
于 2013-09-30T19:40:50.043 に答える
0

から度 (ラジアン)0への移動は通常、3 時の位置から始まり、反時計回りに進みます。36002 pi

したがって、方向を逆にして時計回りにし、反時計回りに 90 度 (pi/2ラジアン) 回転させて、12 時から開始する必要があります。

各時間はpi/6ラジアンで実行されるため、時間の位置は次のhようになります。

x = x_c + r cos (-h*pi/6 + pi/2)
y = y_c + r sin (-h*pi/6 + pi/2)

時計の中心は で、時計(x_c, y_c)の半径は ですr

于 2013-09-30T19:44:35.503 に答える