2013-10-11 122 views
1

對於我當前的Java項目,我必須計算矩形中心的水平和垂直距離。我嘗試使用之前項目的公式來找到這樣的距離。這是我的代碼:如何查找矩形中心的垂直和水平距離

// Calculations; centerCoordinate = 0 
    formula = Math.sqrt(Math.pow(userXCoordinate - centerCoordinate, 2) + Math.pow(userYCoordinate - centerCoordinate, 2)); 

我的教授給的提示,一個點在矩形如果其水平距離(0,0)小於或等於10/2和它的垂直距離爲(0 ,0)小於或等於5/2.我嘗試使用5代表水平距離,2.5代表垂直距離並將變量設置爲這些數字。然後,我做了一個if-else循環,說如果公式的結果小於或等於矩形中座標的變量,否則它們在外面。這返回了一個錯誤的答案;我能做些什麼不同?

+4

不要描述代碼。發表它。告訴我們你在執行代碼時期望的結果,以及你得到的結果。 –

+0

你想弄清楚這個點是包含在矩形中還是與中心或兩者的距離?從一個點到矩形中心的距離不會直接與交叉點相關,就像它與圓形一樣。 –

+0

我試圖找出該點是否包含在矩形中。 –

回答

-1
// Calculations; centerCoordinate = 0 
formula = Math.sqrt(Math.pow(userXCoordinate - centerCoordinate, 2) + Math.pow(userYCoordinate - centerCoordinate, 2), 2); 

你差不多了。 :)

+0

甚至沒有編譯。什麼是'Math.sqrt(someNumber,2)'應該是? –

+0

這是someNumber^2 – Pedrommone

1

所以,讓我們先說,該中心的座標爲: (X = 2.5,Y = 1.25)

請參見下面的用於解釋

   <-10/2 -> 
    (0,0) _____________________ 
    |       |^
    |       | | 
    | Center is (5/2, 2.5/2) | 5/2 
    |       | | 
    |_________________________| v 

的一點是,你無法使用距中心的距離來確定點是否在矩形中,因爲它是矩形而不是圓。 下面是檢查用戶座標是否在矩形中的正確方法。

if(userXCoordinate < 10/2 && userYCoordinate < 5/2) 
{ 
    //user Coordinate is in the rectangle 
} 
+0

優秀的解釋;我現在就試試這個! –

+0

漂亮的ASCII圖形,我給它+1,但我從教授提到的「10/2」和「5/2」假設(5,2.5)是中心 - 將矩形的維度除以2是標準的獲取中心的方式。 –

+0

謝謝你,托馬斯。 –