ここから本文です

三角関数の使い方について教えてください。

ric********さん

2013/9/2317:27:18

三角関数の使い方について教えてください。

三角関数を使った三角形の面積、周囲、高さを求める問題をC++で書こうとしたんですが
なんか計算がおかしくなってしまうので、教えてください。
a, bが辺の長さ(aが底辺)、Cがab間の角度です、Sが面積、Lが周囲、hが高さを代入する変数です。

例えば

double a, b, C, S;
a = 10;
b = 10;
c = 90;
S = (a * (b * sin(C))) / 2;
L = (a + b) + ((pow(a, 2) + pow(b, 2)) - (2 * a * (b * cos(C))));
h = どういうコードを書けばいいのかすらわかりません↓

とした場合、ただの直角三角形のはずなので、面積の答えは50になると思うんですが、
44.~といった変な答えになってしまうんです。

そもそも公式が間違ってるのか、コードがおかしいのか、
三角関数の使い方が間違ってるのかなにが悪いのかわかりません。

言語というよりは数学寄りの質問ですが、よろしくお願いします。

補足変数の宣言の行が足りてませんでしたね。

double a, b, C, S, L, h;

です。

閲覧数:
295
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

buy********さん

2013/9/2317:44:58

>ricechanさん

角度は度でsinとかcos関数に渡すのではなく、rad単位で渡します。

C -> C/180*3.1415...... でsin,cos関数に渡します。

それで答近くなるか確認してください。

円周率は #include <cmath> すると M_PI に設定されてるかもしれません。(環境依存って聞いたことあります。)
Boostライブラリの #include <boost/math/constants/constants.hpp> としておけば boost::math::constants::pi<double>(); とかで取得できます。

3.14159265358979323846

とかを使っても良いと思います。


よろしくお願い致します。

質問した人からのコメント

2013/9/23 17:53:46

いつもありがとうございます!てっきり度で渡すもんだと思い込んでました↓書かれていたとおりにやったら、ちゃんと50って表示されました!

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる