• ベストアンサー

c言語またはVBのSin Cos Tan

お世話になります ふと思ったのですが c言語やVBのSin Cos Tanって、パラメータはラジアンですよね。 でも、中学などで習うSin Cos Tanは直接角度を指定してましたよね? 【質問1】 なぜ、プログラミング言語ではラジアンなのでしょうか? 【質問2】 角度指定で求められる同等の関数が有りますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

VBとはちょっと違いますが、Excel-VBAでは、WorksheetFunction.Radiansで度をラジアンに、WorksheetFunction.Degreesでラジアンを度に変換できます。これは、Excelのワークシート関数にRadiansやDegreesが存在し、それをVBAで利用できる設計のためです。 ところで、プログラミングの古典的な位置付けにあるBASIC言語でも、三角関数の引数にはラジアンが使われており、かなり昔から、その分野では弧度法が用いられていた事が伺えます。 中学校の学習内容には微積分やプログラミングは入っていないので、直感的に解りやすい(アナログの丸い時計などに当てはめて考えやすい)度数法が優先して教えられるのでしょう。 内容が高度になるにつれ、弧度法のほうがスタンダードという扱いになるんじゃないかと思います。

usami33
質問者

お礼

お礼が遅れてすみませんでした 中学までは、教えやすい、覚えやすいが基本なので、 相違が出てきてるんですね。 でも、ラジアン位は中学で教えて於いた方が良いような気がしますね。

その他の回答 (4)

  • yama1718
  • ベストアンサー率41% (670/1618)
回答No.4

数学ではラジアンが基本ですから、 http://www.dfx.co.jp/dftalk/?p=8145 ちなみに、このサイトで解説されているように、 ラジアンなら三角関数の展開式も単純にプログラムできます。 度で計算したければ角度をラジアンに換算して計算すればいいだけです。 関数電卓でも度は換算して内部ではラジアンで計算しています。

usami33
質問者

お礼

お礼が遅れてすみませんでした ラジアンを使っていることは周知しておりますが?

  • kngj1740
  • ベストアンサー率18% (197/1052)
回答No.3

数学的にはラジアンが単位だからでは。360°が2πラジアンなので簡単に変換出来ます(360で割り、2πを掛ける)。問題無いように思えますが。

usami33
質問者

お礼

お礼が遅れてすみませんでした せっかく回答をいただいたのですが、 質問内容と回答がずれていて、補足のしようが有りません。

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.2

> 【質問1】 > なぜ、プログラミング言語ではラジアンなのでしょうか? おそらくですが、プログラムで三角関数を必要としたのは当初科学技術計算で、その現場ではラジアンが普通だからではないかと思います。 普段度数法を使っていると不思議に思うかもしれませんが、科学技術計算では角度をラジアンで表した方が式がすっきりします。たとえば半径が r, 中心角が θ の円弧長の計算では、度数法を使うと  r * θ * (2 * π / 360) になりますが、ラジアンを使うと  r * θ になります。そのため、角度をラジアンで表すのが当たり前になっています。 >【質問2】 > 角度指定で求められる同等の関数が有りますでしょうか? 多分ないと思います。なぜならラジアンと度数法とは簡単にその値を変換できるからです。 上で書いた通り、度数法→ラジアンは  θ * (2 * π / 360) で得られますし、逆は上の括弧内の値で割ってやればいいだけです。 まあ今なら角度クラスを作ってラジアン値・度数法値を得られるプロパティを作るところですが、【質問1】で答えた状況はクラスの影も形もなかった時代ですから、どちらかの数値で表して必要に応じて変換するのが妥当な選択だったと思われます。

usami33
質問者

お礼

お礼が遅れてすみませんでした なるほど、科学技術計算と数学(算数)の違いからこうなったのですね 関数に関しては角度<->ラジアン変換を作る作らないは全く質問の意図ではなく、 ラジアンでのSin,Cos,Tanが有るならば 同様に角度での関数が有ってもよいのではと思った次第です

  • mk48a
  • ベストアンサー率56% (1133/2007)
回答No.1

1. 普通はラジアン指定ですが、中学校ではまだラジアンを習っていなかったからとかかも。 一般的にはSinなどにDegreeを指定することはありません。 2. 多分無い。 簡単なので、作れば良い。 角度(degree)×(π/180)=ラジアン なので、自分で関数を作れば良いです。 πの宣言は言語ごとに違いますが、調べればわかります。 わからなければ、3.14159265357939くらいまで入れておけばほぼ大丈夫だと思います。

usami33
質問者

お礼

> 普通はラジアン指定 何を持ってして普通なのか理解できませんでした 角度<->ラジアン変換を作る作らないは全く質問の意図ではなく、 ラジアンでのSin,Cos,Tanが有るならば 同様に角度での関数が有ってもよいのでは・・・ それと角度<->ラジアン変換は対して難しい考えではないので、 なぜ学校では角度でのSin,Cos,Tanしか教えないのか

関連するQ&A

専門家に質問してみよう