投稿日 | : 2006/07/28(Fri) 11:53 |
投稿者 | : も |
Eメール | : |
URL | : |
タイトル | : Re^5: 超越関数 |
> ご回答ありがとう御座います。
>
> もさんが記述してくれた内容をそのまま
> x=○○ とXに代入して色々数値を変えて実行してみたのですが、
> xをどんな値にしても返って来る数値は0.785398・・・・・となってしまいます。
>
> Private Sub Form_Load() を空白にしてただ単に
>
> Arccos = Atn(-x / Sqr(-x * x + 1)) + 2 * Atn(1) の関数を実行した場合も
> 全く同じ状態です。
>
> 私が根本的に理解していないのかもしれません^^;
コーディングの方法や、プログラムコードの読み方までは提示できませんので、
どのようにすれば私の書いたArccosという関数を"使えるか"ということは自力で調べて
みてください。
例)
debug.? arccos(cos(1)),1
> 私が作成したいプログラムは単純に三角形の辺や角度を計算するものなのですが、
> 現在角度を求める式で、このアークコサイン関数を使用したいのです。
>
>
> 例えば、三角比で 底辺:高さ:斜辺 1:1:√2 (この場合内角の角度は90・45・45
)
> θ=rccos(底辺/斜辺)
>
> 上記を踏まえて、
>
> x=1/Sqr(2)
> Arccos = Atn(-x / Sqr(-x * x + 1)) + 2 * Atn(1)
>
> 返り値は 45 となると思っているのですが、この考え自体間違いなのでしょうか?
間違っています。
VBの三角関数はすべてラジアン度(弧度法)です、度数法ではありません。
度数表記にしたいのならば、独自で関数を用意する必要があります(単純ですが)
この場合は、
dim PI as double
PI=(atn(1)*4)
debug.? cos(45*PI/180),arccos(cos(45*PI/180))*180/PI
となりましょうか。