如何使用余弦定律计算三角形的内角
How to calculate the interior angle of a triangle using the law of cosines
我正在为我的学校做一个项目,我必须在其中创建一个计算三角形角度的方法。我们正在使用余弦定律,但恐怕我根本不了解它。我知道我可以使用一个公式,但我已经在 wolfram alpha 中输入了值,但它们完全不同(当我取出 Math.acos 部分时)或者只是不 return一个数字(Math.acos)。我已经尝试了很多不同的东西(包括只取出 Math.acos 部分看看会发生什么,我得到了 1 或 3),但这是我目前所拥有的:
public static double angle(double a, double b, double c) {
return Math.acos((Math.pow(a, 2) + Math.pow(b, 2) + Math.pow(c, 2)) / (2 * b * c));
}
参数代表每条边的长度。我不断收到结果 "NaN"。我知道方法 Math.acos 将 return 如果接收到的数字超过 1,但是当我根本不明白我在做什么时很难解决这个问题。感谢任何帮助,谢谢!
你的代码有一些错误,正确的公式是cos(y) = (a^2 + b^2 - c^2) / 2ab
,我在下面修正:
public static double angle(double a, double b, double c) {
return Math.acos((Math.pow(a, 2) + Math.pow(b, 2) - Math.pow(c, 2)) / (2 * a * b));
}
public static void main(String[] args) {
System.out.println(angle(10, 10, 10));
System.out.println(Math.toDegrees(angle(10, 10, 10)));
}
结果是:
run:
1.0471975511965979
60.00000000000001
BUILD SUCCESSFUL (total time: 0 seconds)
希望对您有所帮助。
我正在为我的学校做一个项目,我必须在其中创建一个计算三角形角度的方法。我们正在使用余弦定律,但恐怕我根本不了解它。我知道我可以使用一个公式,但我已经在 wolfram alpha 中输入了值,但它们完全不同(当我取出 Math.acos 部分时)或者只是不 return一个数字(Math.acos)。我已经尝试了很多不同的东西(包括只取出 Math.acos 部分看看会发生什么,我得到了 1 或 3),但这是我目前所拥有的:
public static double angle(double a, double b, double c) {
return Math.acos((Math.pow(a, 2) + Math.pow(b, 2) + Math.pow(c, 2)) / (2 * b * c));
}
参数代表每条边的长度。我不断收到结果 "NaN"。我知道方法 Math.acos 将 return 如果接收到的数字超过 1,但是当我根本不明白我在做什么时很难解决这个问题。感谢任何帮助,谢谢!
你的代码有一些错误,正确的公式是cos(y) = (a^2 + b^2 - c^2) / 2ab
,我在下面修正:
public static double angle(double a, double b, double c) {
return Math.acos((Math.pow(a, 2) + Math.pow(b, 2) - Math.pow(c, 2)) / (2 * a * b));
}
public static void main(String[] args) {
System.out.println(angle(10, 10, 10));
System.out.println(Math.toDegrees(angle(10, 10, 10)));
}
结果是:
run:
1.0471975511965979
60.00000000000001
BUILD SUCCESSFUL (total time: 0 seconds)
希望对您有所帮助。