高中以来很长一段时间。如果我有一个直角三角形,并且知道角度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.htm和http://www.endmemo.com/geometry/triangle.php)。这让我很怀疑!
我在触发器方面不足以确定哪个是准确的,但我可能更喜欢互联网计算器。
任何人都可以协助使用正确的公式来执行此操作,还是指向一个有用的c#右三角解算器类?
由于
答案 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。你的计算不正确。