2013-01-14 62 views
0

我想下面的JavaScript轉換成JavaJavaScript的逗號操作符在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)) 

回答

11

這不是一個運營商,它只是兩個參數分離到atan2。它是用Java編寫的exactly the same

(回想atan2分別取xy部件,以便解決旋轉歧義。)

+0

謝謝!不知道我錯過了什麼,需要更多的咖啡! – drunkmonkey

+1

@drunkmonkey或更少的咖啡和更多的睡眠:) – Destrictor

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));