Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何24小时定位这些数字?_Javascript_Jquery_Math_Trigonometry - Fatal编程技术网

Javascript 如何24小时定位这些数字?

Javascript 如何24小时定位这些数字?,javascript,jquery,math,trigonometry,Javascript,Jquery,Math,Trigonometry,很明显我的三角架有点生锈了。我怎样才能得到一分钟的时间 [更新:忘记了codepen的版本不像JSFIDLE;这个“pen”是一个正在进行的工作,不再代表我在回答这个问题时遇到的问题] 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*Ma

很明显我的三角架有点生锈了。我怎样才能得到一分钟的时间

[更新:忘记了codepen的版本不像JSFIDLE;这个“pen”是一个正在进行的工作,不再代表我在回答这个问题时遇到的问题]

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');
}
var r=$('.face').width()/2;
var j=r-18;

对于(var min=0;min假设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);

假设最小值在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);

0
360
度(
0
弧度)通常从3点钟开始,然后逆时针旋转

所以我们需要反转方向,使其顺时针旋转,然后逆时针旋转90度(
pi/2
radians),使其从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\u c,y\u c)
,时钟的半径是
r
,从
0
360
度(
0
2pi
弧度)通常从3点钟开始,逆时针方向

所以我们需要反转方向,使其顺时针旋转,然后逆时针旋转90度(
pi/2
radians),使其从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\u c,y\u c)
你的时钟半径是
r
你所有的
时间
刻度都在一个之下。给
.time
类绝对定位。

你所有的
时间
刻度都在一个之下。给
.time
类绝对定位。

OP已经处理过这个问题:
数学.PI*2*(min/60)
。度数不包括在内。这是事实,但我更喜欢不太复杂的代码,尤其是在示例中,因为它更容易理解。我认为主要的问题是混淆了cos和sin。不,代码的触发函数顺序正确,因为它从顶部顺时针移动,而不是角度测量的常规方向。OP already处理了这个问题:
Math.PI*2*(min/60)
。度数不包括在内。这是事实,但我更喜欢不太复杂的代码,尤其是在示例中,因为它更容易理解。我认为主要的问题是混淆了cos和sin。不,代码的触发函数顺序正确,因为它是从顶部顺时针进行的,而不是角度测量的常规方向。转动o但是你的三角很好。顺便说一句,你可以把
Math.PI*2*(min/60)
简化为
Math.PI*min/30
,或者干脆把
min*0.10472
变成你的三角很好。顺便说一句,你可以简化
Math.PI*2*(min/60)
数学.PI*min/30
,甚至只是
min*0.10472
他已经通过相互切换
sin
cos
解决了这个问题。他已经通过相互切换
sin
cos
解决了这个问题。+1是唯一正确的答案。我会给另一个答案唯一一个在没有通读的情况下不认为数学是错误的。哈!我搞乱了CSS,一定已经删除了。谢谢你抓住了我的愚蠢错误:-)+1是唯一正确的答案。我会再给你一个,因为我是唯一一个没有通读就认为数学是错的人。哈!我搞乱了CSS,一定是把它删除了。谢谢你抓住我愚蠢的错误:-)