Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.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 寻找围绕点的旋转_Javascript_Trigonometry - Fatal编程技术网

Javascript 寻找围绕点的旋转

Javascript 寻找围绕点的旋转,javascript,trigonometry,Javascript,Trigonometry,我已经设法得到一个函数,它将计算并返回一个点和另一个点之间的角度。我把它叫做lookAt函数,因为它基本上是让一个变换看另一个变换。这是: this.lookAt = function(target) { var d = target.subtract(this.position) this.rotation = Math.atan2(d.y, d.x) + Math.PI/2; return this.rotation; } 在这个函数的上下文中,这个指的是一个周围的

我已经设法得到一个函数,它将计算并返回一个点和另一个点之间的角度。我把它叫做
lookAt
函数,因为它基本上是让一个变换看另一个变换。这是:

this.lookAt = function(target) {
    var d = target.subtract(this.position)
    this.rotation = Math.atan2(d.y, d.x) + Math.PI/2;
    return this.rotation;
}
在这个函数的上下文中,
这个
指的是一个周围的对象,它有变量
旋转
(以弧度为单位的旋转)和
位置
,一个
向量2
类,它有一些基本的数学函数并存储
x
y
d
是通过调用变量
target
上的辅助函数创建的
Vector2
,该函数从另一个
Vector2
中减去一个
Vector2

这和预期的一样——如果我在对象上调用此函数,旋转将正确地“注视”目标。然而,我想知道为什么我必须添加
π/2
(这是1弧度,对吗?)。我从中得到了原始方程,但答案没有向方程中添加π/2,而我必须这样做


有人能解释一下这背后的原因吗?另外,我还没有学过那么多的三角学(除了我的代数课程向我介绍的内容),所以请解释一下,就像你在和一个非常小的孩子说话一样。:-)

根据定义,
pi/2
是1/2A弧度。也是90度……啊,好的,对。我不得不自己在维基百科上查找弧度,因为我已经迫不及待地等待我的数学课程向他们介绍我(我还在等!),所以我对它们的理解可能有点模糊无论如何,这个问题的答案将完全取决于如何使用这个函数的结果的细节。此函数(不带pi/2)仅计算水平线与两个对象之间形成的线之间的角度。对于π/2,它是一条垂直线。啊,好的。好添加0.5弧度有什么效果?我想它会使水平线和两个物体之间顺时针形成的线之间的角度增加90°-编辑-你已经回答了我的问题。谢谢。@OliCharlesworth:另外,如果你把你的评论作为回答,我会接受的。你的解释澄清了正在发生的事情,以至于我对正在发生的事情有一个模糊的理解,这将不得不做,因为有些人似乎热衷于结束我的问题。