【问题标题】:How do I calculate the angle of a right triangle using the Javascript Math library?如何使用 Javascript 数学库计算直角三角形的角度?
【发布时间】:2015-01-05 17:33:52
【问题描述】:

考虑以下三角形:

我要计算角度X

我有以下:

    var opposite = 2.5;
    var hypotenuse = 5;

    var sinOfAngleX = opposite / hypotenuse; // 0.5

所以现在我知道Math.sin(valueofAngleX) 会返回0.5。

但是,如果我知道角度的正弦,如何使用 Math() 库获得​​角度的值?

根据this tutorial,我需要这样做:

var angleX = sin to the power of negative one of 0.5

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

我试过了:

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

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

如果以上所有内容一开始都是错误的,有谁知道我如何使用 JS Math() 库正确计算角度 X?

谢谢!

【问题讨论】:

  • 至少,看起来你正在取 sineOfAngleX 的正弦,这是错误的开始。 (感谢 -1 的人,我的意思是评论而不是答案)
  • sin^-1(a) 这里不是指1/sin(a),而是"the inverse function of sin"(a),因此是arcsin(又名asin)。要将1/sin(a) 与^-1 一起编写,可以添加括号:(sin(a))^-1。注意sin(a^-1)表示sin(1/a),sin(a)^-1是模棱两可的,应该避免。

标签: javascript math trigonometry


【解决方案1】:

你可以用这个公式知道任何罪的角度:

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

使用sinOfAngleX = 0.5,Math.asin(sinOfAngleX) 将给出0.5235987755982989。这以弧度表示。要将其传递到度数,您可以乘以 180/Math.PI,结果为 30º

【讨论】:

    【解决方案2】:

    在 ES6 中,您可以使用来自 Math Object 的 build it 方法

     Math.hypot(3, 4)
    

    【讨论】:

    • 很好的代码技巧,然而,它实际上给了你斜边的长度,而不是 OP 中要求的角度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多