0
私は、コサインの法則を使って、与えられた角度とは反対の三角形の辺の長さを返す関数をCで作成しようとしています。余弦計算の法則を書く
今私はExcelで作業する数式を得て、正しい結果を得ました。しかし、私はCで試してみると、間違った結果を得ています。なぜそれを解決することはできません。
私はサイドAを21.1、サイドBを19、そしてそれらの間の角度を40度としています。今私が優秀になるように答えは14.9になるはずです。しかし、私は23.735を得ています。私が間違ったところでうまくいくように助けてください。
// Find the length of a side of a triangle that is oppisit a given angle using the Law Of Cosine
// for example using an triangle that is 21.1cm on one side, 19 cm on the other and an angle of 40 degreese inbetween then....
// in excel it worked and the formuler was =SQRT(POWER(23.1;2)+POWER(19;2)-2*(23.1)*(19)*COS(40*(3.14159/180))) = 14.9 cm
float my_Trig_LawOfCos_OppSideLength(float centerAngle, float sideA, float sideB)
{
float sideLengthPow2= (pow(sideA,2) + pow(sideB,2))) - ((2*sideA*sideB)*cos(centerAngle*(3.14159/180));
float sideLength = sqrt(sideLengthPow2);
return sideLength;
}
あなたのかっこはバランスが取れていません(あなたのサンプルを貼り付けたときに私のコンパイラはちょうど訴えました)。だから私はこれがあなたの実際のコードだとは思わない。 – StoryTeller
[私が*問題を解決したときに、あなたは期待した結果を得ました](http://ideone.com/Gd4oqO)。 – StoryTeller
注意:コードが 'float'を使用している場合、' sqrtf() '、' cosf() 'などの' float'関数も使用できます。 – chux