计算三角形的第三边

时间:2015-02-16 04:54:43

标签: c#

我正在用C#创建一个程序,我无法弄清楚到底发生了什么以及为什么第三方没有正确计算

这就是我用它来计算它http://www.mathsisfun.com/algebra/trig-solving-sas-triangles.html

这就是我所拥有的

private void button1_Click(object sender, EventArgs e)
    {
        const double TRIANGLE_DEGREES = 180.0;

        string userEntry = string.Empty;
        // Get angle 1 and assign to variable
        userEntry = tbAngle3.Text;
        int angle3 = int.Parse(userEntry);

        // Get side 1 and assign to variable
        userEntry = tbSide1.Text;
        int side1 = int.Parse(userEntry);

        // Get side 2 and assign to variable
        userEntry = tbSide2.Text;
        int side2 = int.Parse(userEntry);

        // Figure out side 3 and assign to a variable
        double side3 = Math.Sqrt(side1 * side1 + side2 * side2 - 2 *  side1 * side2 * Math.Cos(angle3));

        // Display side 3
        textSide3.Text = string.Format("{0}", side3);
    }

1 个答案:

答案 0 :(得分:5)

实际上它非常简单,而不是来自你的算法。当你以度数工作时,Math.Cos弧度中占一个角度。进行转换(角度* Pi / 180),它将起作用:

double side3 = Math.Sqrt(side1 * side1 + side2 * side2 - 2 *  side1 * side2 * Math.Cos(angle3 * (Math.PI / 180)));

修改后的部分仅为Math.Cos,后者变为Math.Cos(angle3 * (Math.PI / 180)))

很容易错过,但正如文件所述(强调我的):

  

(双d):双倍   返回指定角度的余弦
  d:以弧度

衡量的角度