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

时间:2013-02-27 00:37:25

标签: 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;  
    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的值,并且getPacing()始终返回一个舍入为2或3的值。我做错了什么?

1 个答案:

答案 0 :(得分:6)

C = 180 - (A + B);

这告诉我你正在使用学位。

但是,Math.sin采用弧度。

请尝试使用Math.sin(Math.toRadians(A))