2016-11-10 523 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);