我已经为我的班级编写了一个程序,要求我编写一个GUI程序,当用户输入b侧和c侧的C侧时,计算Side 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;
}
答案 0 :(得分:0)
您可以轻松使用law of cosines。代码:
// /\
// / \
// 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
。希望这会有所帮助。