2016-11-10 526 views
1

我在數學系有點生疏,我想計算給定高度(h)和對角(C)的直角三角形的斜邊。
right angle triangle
我嘗試這樣做:從高度和角度計算斜邊

double a = h/Math.Sin(v); 

整個代碼片段:

string line; 
while ((line = Console.ReadLine()) != null) 
{ 
    string[] split = line.Split(new char[] { ' ' }, StringSplitOptions.None); 
    long h = Int64.Parse(split[0]); 
    long v = Int64.Parse(split[1]); 
    double res = h/Math.Sin(v); 
    Console.WriteLine(res); 
} 

然而,這並不能給我正確的答案。例如,如果高度爲10000,角度C爲89,則斜邊應該是〜10001,但是我得到〜11626。我已經在JavaScript和C#中嘗試了這一點,但我得到了同樣錯誤的答案,但是我的計算器給出了正確的答案。 任何想法我做錯了什麼?

+0

後的代碼請 –

回答

1

角度c必須是弧度不度

要獲得弧度使用C * Math.PI/180

+0

太感謝你了,我已經忘記了的Radia納秒。這解決了我的問題 – Tess

2

你所面臨的問題是,你的計算以弧度而不是度

正在做

爲了解決這個問題,必須從度轉換爲弧度,像這樣

double c = v * (Math.PI/180); 
double a = h/Math.Sin(c);