1

私は一辺の長さを与えられた三角形の角度を見つけなければならないプロジェクトをやっています、そして私はプログラムを書くことは物事を単純化するだろうと思いました。しかし、私のコードは機能していません。

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に丸められる値を返します。何が間違っているのでしょうか。

4

1 に答える 1

6
C = 180 - (A + B);

これは、度を使用していることを示しています。

ただし、Math.sinラジアンを取ります。

Math.sin(Math.toRadians(A))代わりに使用してみてください。

于 2013-02-27T00:41:39.370 に答える