我在网上搜索了近三个小时,试图找到我的问题的答案。我已阅读articles并观看了很多videos展示了如何获取矢量的 Angular (以度或弧度为单位)。但这并不是我正在寻找的。p>
我怀疑我可能不知道正确的词语来描述我想要做的事情,所以我决定把它画下来。
本质上,我正在尝试编写一个简单的函数,它将 2D 向量作为输入(在我的示例中为 [3,1])并返回我认为所谓的欧拉 Angular 。在我的示例中,输出约为 290。向量可以具有负坐标,例如 [-3, -1] 将输出约为 110。
我不知道这是否会改变任何东西,但负输出也是可以接受的。例如,相应的可接受输出不是 270,而是 -90。
最佳答案
由于逆时针与 x 轴的 Angular 是 y/x 的反正切,因此您只需要得到以度为单位的结果,将其增加 270,将 Angular 域保持在 [0,360) 中,如下所示:
function euler_angle(x,y) {
var rad = Math.atan(y/x); // arcus tangent in radians
var deg = rad*180/Math.PI; // converted to degrees
if (x<0) deg += 180; // fixed mirrored angle of arctan
var eul = (270+deg)%360; // folded to [0,360) domain
return eul;
}
关于javascript - 如何将向量转换为欧拉 Angular ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47785696/