2017-01-12 141 views
-3

考慮到矩形的邊長(高度寬度),我想計算從一個角到另一個角的斜邊度以及它的長度(勾股定理)。如何在不使用「手動實現算法」的情況下使用java編寫此代碼,無法找到我正在查找的方法?如何計算矩形斜邊的長度和角度?

+0

你嘗試過什麼了嗎?你有沒有想過你可以用什麼公式來產生結果? – nvioli

+0

使用實際數學? 'arctan(高度/寬度)'? – Moira

+4

它當然可以做_without_'commons-math',如果這有助於 – khelwood

回答

2

鑑於寬度w和高度h,對角線的長度由

Math.sqrt(w*w+h*h) // pythagoras 

給予或者您可以使用Math.hypot(w,h)爲你做這個。

對角線的角度可以通過

Math.atan(h/w) // arc tan in radians 

來計算,您也可以使用替代反正切功能,atan2,但只有事項,如果你需要的結果在一個特定的範圍內歸還。

要從弧度轉換爲度數,可以使用Math.toDegrees

+0

難道你不想'斜邊'的斜邊?基本上一樣的東西 – xenoterracide

+0

顯然如此。我以前並沒有意識到「低壓」。謝謝。 – khelwood

+0

我剛注意到它,一旦你指出'我以前沒有需要的數學'類 – xenoterracide

1

你應該使用:

org.apache.commons.math3.analysis.function.Atan atan = org.apache.commons.math3.analysis.function.Atan(); 
double angle = atan.value(height/width); 
org.apache.commons.math3.analysis.function.Sqrt sqrt = org.apache.commons.math3.analysis.function.Sqrt(); 
double length = sqrt.value(height*height+width*width); 
+0

我正在尋找'幾何'包... – xenoterracide

+1

@ xenoterracide但你說過使用commons-math,然後你編輯了你的問題。我剛回答你的原始問題,對吧? –

+0

基本上,我不認爲知道如何去做這兩件事都是不好的,我會在當天晚些時候接受一個答案(我喜歡允許一段時間發生upvoting,因爲人們不傾向於閱讀接受的問題答案) – xenoterracide