【问题标题】:Sin and cos in PHP difference from JavascriptPHP 中的 sin 和 cos 与 Javascript 的区别
【发布时间】:2018-04-25 07:25:37
【问题描述】:

我正在尝试获取角度为9.590124942537262 的 sin 和 cos。

在 Javascript 中我会这样做:

var a = Math.sin(9.590124942537262);
var b = Math.cos(9.590124942537262);

结果是:

a == -0.16459459028073223
b == -0.9863613034027227

如果我像这样在 PHP 中执行相同的操作:

$a = sin(9.590124942537262 * M_PI / 180); // ≈ 0.16737916966136 rad
$b = cos(9.590124942537262 * M_PI / 180);

我得到了这些结果:

$a == 0.16659953926461
$b == 0.9860246414349

问题是:如何使这些操作统一,以便 PHP 返回带有减号的正确值?我尝试将角度变圆,但没有帮助。

【问题讨论】:

  • 你为什么不在 JavaScript 版本中转换成弧度?
  • @Pointy,我无法更改 JS 代码,我正在将其转换为 PHP。
  • 这就是 9.590124942537262 degrees9.590124942537262 radians 的 sin/cos 之间的区别。或者一般来说:angle !== angle * Math.PI/180
  • 那么 JavaScript 中的三角函数也适用于弧度;您的 PHP 代码与 JavaScript 代码明显不同,原因尚不清楚。如果您只是像 JavaScript 代码一样在 PHP 中将值传递给 sincos 会怎样?
  • 好吧,你为什么在PHP版本中这样做?

标签: javascript php trigonometry


【解决方案1】:

PHP 和 JavaScript 的三角函数都以弧度工作

在您的 PHP 示例中,您尝试将度数转换为弧度,因为您实际上是在提供要转换为弧度的弧度,您只是添加 Pi 弧度或 180 度,因此为什么会得到否定的结果.

您应该能够使用相同的参数在每种语言中编写代码:

Math.sin(9.590124942537262);
Math.cos(9.590124942537262);

sin(9.590124942537262);
cos(9.590124942537262);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多