如何使用Javascript Math库计算直角三角形的角度?

8

考虑以下三角形:

enter image description here

我想计算角度X

我有以下信息:

    var opposite = 2.5;
    var hypotenuse = 5;

    var sinOfAngleX = opposite / hypotenuse; // 0.5

现在我知道 Math.sin(valueofAngleX) 返回 0.5

但如果我知道角的正弦,如何使用 Math() 库获取角的值呢?

根据这篇教程,我需要执行:

var angleX = sin的负一次方(0.5)

但我不知道如何将其翻译成 JS 代码。

我尝试了:

var angleX = Math.pow(Math.sin(sinOfAngleX), -1);

但是它返回了2.085829642933488,这显然是错误的。正确答案应该是30

如果以上全部都是错误的话,有没有人知道我如何使用JS Math()库来正确计算X角度呢?

谢谢!


至少看起来你正在对sineOfAngleX的正弦值进行计算,这本身就是错误的。(感谢给我-1的人,我本意是想发表评论而不是回答) - Paul
sin^-1(a) 这里并不是指 1/sin(a),而是指 "sin的反函数"(a),也就是 arcsin(又称为 asin)。要用 ^-1 表示 1/sin(a),需要加上括号:(sin(a))^-1。请注意,sin(a^-1) 表示的是 sin(1/a),而 sin(a)^-1 是含糊不清的,因此应该避免使用。 - Cimbali
2个回答

20

使用这个公式可以求出任何正弦函数的角度:

Math.asin(sinOfAngleX) * 180/Math.PI

sinOfAngleX = 0.5时,Math.asin(sinOfAngleX)会返回0.5235987755982989。 这是用弧度表示的。 要将其转换为度数,可以乘以180/Math.PI,结果为30º。


-1
在 ES6 中,你可以使用 Math 对象中的内置方法。
 Math.hypot(3, 4)

enter image description here


4
不错的代码技巧,但实际上它给出的是斜边的长度,而不是OP所要求的角度。 - Steve

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接