2013-04-15 69 views
0

高中以來很長一段時間。如果我有一個直角三角形,並且知道角度A,我想要計算出與它相對的一側的長度。 c#食譜頁面(http://www.gibmonks.com/c_sharp/csharpckbk2-CHP-1-SECT-14.html)建議:在C中的正確的三角形計算#

oppositeSide = Math.Sin(theta)* hypotenuse;

假設角度A(θ)爲45,斜邊長度爲10單位,此代碼給出了8.51的結果。至少有4個在線三角解算器給我7.07的答案然而(例如http://www.cleavebooks.co.uk/scol/calrtri.htmhttp://www.endmemo.com/geometry/triangle.php)。這讓我很懷疑!

我不是足夠的trig來看看哪個是準確的,但我可能會青睞互聯網計算器。

任何人都可以幫助正確的公式做到這一點,或指向一個有用的C#直角三角解算器類嗎?

謝謝

回答

6

documentation起,值theta必須以弧度表示。它看起來像你使用的在線求解器以度爲單位解釋theta

可以從度轉換爲弧度如下:

theta = theta * Math.PI/180 
+0

你是對的,謝謝。當時間結束後,我會將此標記爲答案。 – Glinkot

-1

45度的正弦是.707。你的計算不正確。

+0

我直接應用公式如上圖所示,使用標準的.NET的數學課,以任何指導,爲什麼它返回值什麼正確的代碼將不勝感激。歡呼 – Glinkot

0

順便提及,對於具有已知的45deg一個其他角的直角三角形,剩餘的2個邊的長度相等,並且可以還用這個公式計算它們的長度;

(a*a) + (b*b) = (c*c) 

因此,在這種情況下,

(a*a) * (a*a) = (10*10) 

(a*a) * (a*a) = 100 

(a*a) = 100/2 

a = sqrt(50) 

就像另一種方式來幫助您驗證這個獨特的情況下的結果,並證明〜7.07是正確的答案。

1

您正在指定角度度數,但Math.Sin方法需要弧度。

可以使用theta * 2 * PI/360轉換爲弧度:

oppositeSide = Math.Sin(theta * 2.0 * Math.PI/360.0) * hypotenuse;