我设法让一个函数工作,它将计算并返回一个点与另一个点之间的角度。我称它为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;
}
在此函数的上下文中,this
指的是具有变量rotation
(以弧度为单位的旋转)的周围对象,以及具有一些基本数学函数以及存储和值position
的类。是通过在变量上调用辅助函数创建的,该函数从另一个中减去一个。Vector2
x
y
d
Vector2
target
Vector2
这按预期工作——如果我在一个对象上调用这个函数,旋转正确地“看着”目标。但是,我想知道为什么我必须添加π / 2
(这是 1 弧度,对吗?)。我从这个问题中得到了原始方程,但答案并没有添加π / 2
到方程中,而我必须添加。
有人可以解释这背后的数学原理吗?另外,我还没有学那么多三角学(除了我的代数课程向我介绍的),所以请解释一下,就好像你在和一个很小的孩子说话一样。:-)