java中的javascript逗号运算符

时间:2013-01-14 14:11:07

标签: java javascript math

我正在尝试将以下javascript转换为java

var lat2 = Math.asin( Math.sin(lat1)*Math.cos(d/R) + 
          Math.cos(lat1)*Math.sin(d/R)*Math.cos(brng) );
var lon2 = lon1 + Math.atan2(Math.sin(brng)*Math.sin(d/R)*Math.cos(lat1), 
                 Math.cos(d/R)-Math.sin(lat1)*Math.sin(lat2));

这一切都相当简单,除了我不确定cos(lat1)之后的逗号是什么? 我在javascript中读到它用于将昏迷后的值分配给变量,同时仍然在评估第一个表达式,尽管在上面的代码中,逗号之前的表达式没有存储?

有关将此转换为java或了解逗号的功能的任何帮助吗?

原始数学公式也有逗号

φ2 = asin( sin(φ1)*cos(d/R) + cos(φ1)*sin(d/R)*cos(θ) )
 λ2 = λ1 + atan2( sin(θ)*sin(d/R)*cos(φ1), cos(d/R)−sin(φ1)*sin(φ2) )

3 个答案:

答案 0 :(得分:11)

它不是运算符,它只是将两个参数分离为atan2。它是Java中的exactly the same

(回想一下atan2分别采用xy个元素,以解决旋转模糊问题。)

答案 1 :(得分:4)

Math.atan2方法接受两个参数。逗号只是将它分开。

  

Math.atan2(y,x)

     

返回其参数商的反正切值。

<强>参考:

答案 2 :(得分:1)

唯一需要改变的是给变量一个类型。

double lat2 = Math.asin(Math.sin(lat1) * Math.cos(d / R) +
        Math.cos(lat1) * Math.sin(d / R) * Math.cos(brng));
double lon2 = lon1 + Math.atan2(Math.sin(brng) * Math.sin(d / R) * Math.cos(lat1),
        Math.cos(d / R) - Math.sin(lat1) * Math.sin(lat2));