1

我设法让一个函数工作,它将计算并返回一个点与另一个点之间的角度。我称它为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的类。是通过在变量上调用辅助函数创建的,该函数从另一个中减去一个。Vector2xydVector2targetVector2

这按预期工作——如果我在一个对象上调用这个函数,旋转正确地“看着”目标。但是,我想知道为什么我必须添加π / 2(这是 1 弧度,对吗?)。我从这个问题中得到了原始方程,但答案并没有添加π / 2到方程中,而我必须添加。

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

4

0 回答 0