C#中的右三角计算

时间:2013-04-15 23:45:38

标签: c# math trigonometry

高中以来很长一段时间。如果我有一个直角三角形,并且知道角度A,我想计算出与它相对的一侧的长度。关于此(http://www.gibmonks.com/c_sharp/csharpckbk2-CHP-1-SECT-14.html)的c#cookbook页面建议:

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)。这让我很怀疑!

我在触发器方面不足以确定哪个是准确的,但我可能更喜欢互联网计算器。

任何人都可以协助使用正确的公式来执行此操作,还是指向一个有用的c#右三角解算器类?

由于

4 个答案:

答案 0 :(得分:6)

documentation开始,theta的值必须以弧度为单位。看起来您正在使用的在线解算器以度数解释theta

您可以按照以下步骤将度数转换为弧度:

theta = theta * Math.PI/180

答案 1 :(得分:1)

您以度为单位指定角度,但Math.Sin方法需要弧度。

您可以使用theta * 2 * PI / 360将度数转换为弧度:

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

答案 2 :(得分:0)

顺便提一下,对于另一个角度已知为45度的直角三角形,其余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是正确的答案。

答案 3 :(得分:-1)

45度的正弦是.707。你的计算不正确。