C#visual studio使用正弦和余弦查找最后两个角度



我为我的类编写了一个程序,要求我编写一个GUI程序,当用户输入a面、b面和与C面相对的角度C时,计算C面。我编写的程序正确地做到了这一点。

我的问题是这项任务的额外学分部分,它要求我获取所有信息并找到其他两个角度。我甚至很难开始写它。我们正在学习方法,所以我必须写一个新的方法来计算其他2个角度,使用我现在拥有的所有边的长度和角度c的大小。

关于如何开始或着手编写这种方法,有什么建议吗?如果有帮助的话,我可以发布一些我的源代码。到目前为止,我有这个代码,但我不知道我的方法哪里有错误。我找不到显示的正确号码

static double CalcAngleB(double side1, double side2, double side3)
{
    const double COS = 2; const double RADIANS = 180;
    //calculate sideOne by muliplying side1 by side1
    double sideA = side1 * side1;
    //calculate sideTwo by multiplying side2 by side2
    double sideB = side2 * side2;
    //calculate sideThree by muliplying side3 by side3
    double sideC = side3 * side3;
    //Begin cosine functions to find Angle B.
    double sumOfThreeSides = sideA + sideC - sideB;
    double RadiansAngleB = sumOfThreeSides / (COS * side1 * side3);
    //convert back to degrees degrees = radians * (180/Math.PI)
    //double angleB = RadiansAngleB * (RADIANS / Math.PI);
    double angleB = Math.Cosh(RadiansAngleB);
    //double angleBDegress = angleB * (RADIANS / Math.PI);
    //return the answer
    return angleB;
}

您可以很容易地使用余弦定律。代码:

//    /
//   /  
// a/    b
// /     
//---------
//    c
public double CalcAngleB(double a, double b, double c)
{
    return Math.Acos((a * a + c * c - b * b) / (2 * a * c));
}
//    /
//   /  
// a/    b
// /     /
//------/---
//    c
public double CalcAngleA(double a, double b, double c)
{
    return Math.Acos((b * b + c * c - a * a) / (2 * b * c));
}
//    /
//   /--
// a/    b
// /      
//----------
//    c
public double CalcAngleC(double a, double b, double c)
{
    return Math.Acos((b * b + a * a - c * c) / (2 * b * a));
}

您的代码也是正确的,但应该使用Math.Acos而不是Math.Cosh。希望这能有所帮助。

最新更新