在Java中使用正弦定律/余弦定律需要帮助吗

在Java中使用正弦定律/余弦定律需要帮助吗,java,trigonometry,Java,Trigonometry,我正在做一个项目,在这个项目中,我必须找到给定边长的三角形的角度,我认为编写一个程序可以简化事情。但是,我的代码不起作用 int a, b, c; // distance lengths double A, B, C; // angle measurements public FootprintSet(int sideA, int sideB, int sideC) { a = sideA; b = sideB; c = sideC; computeAngl

我正在做一个项目,在这个项目中,我必须找到给定边长的三角形的角度,我认为编写一个程序可以简化事情。但是,我的代码不起作用

int a, b, c; // distance lengths
double A, B, C; // angle measurements

public FootprintSet(int sideA, int sideB, int sideC) {
    a = sideA;
    b = sideB;
    c = sideC;  
    computeAngles();
}

private void computeAngles() {
   A = Math.acos((b * b + c * c - a * a)/(2.0 * b * c)); // law of cosines
   B = Math.asin((Math.sin(A) * b)/a); // law of sines
   C = 180 - (A + B); 
}

public int getPacing() {
    return (int)(A+0.5);
}

public int getStride() {
    return (int)((C + B)/2.0 + 0.5); // average of two stride angles
}
对于我创建的任何对象,getStride总是返回一个四舍五入到89的值,GetPacking总是返回一个四舍五入到2或3的值。我做错了什么

C = 180 - (A + B);
这说明您正在使用学位

然而,Math.sin采用弧度

试着用Math.sinMath.toRadiansA代替

这说明您正在使用学位

然而,Math.sin采用弧度


尝试改用Math.sinMath.toRadiansA。

1。您使用的是int而不是float/double。您假设的是度数而不是弧度。您应该使用double进行所有计算,并仅为最终结果截断为int,如果是。1。您使用的是int而不是float/double。您假设的是度数而不是弧度。您应该使用double进行所有计算,并仅为最终结果截断为int,如果是这样的话。