GASで三角関数(sin,cos,tan)を実行する方法!逆三角関数も利用可能

Google Apps Script(GAS)では、高校数学で習う三角関数を利用することができます。

sin,cos,tan(サイン、コサイン、タンジェント)などをGASで実行する方法を解説します。

高校数学で習う三角関数は測量などで利用

三角関数といえば、「サイン、コサイン、タンジェント」として高校数学で必ず習う分野です。

しかし、高校生で習った時には三角関数が日常生活でどのように活用されているか理解せずに学ぶことが多いです。

そのため、「三角関数は何に使うのかよく分からない」と思いますが、色々な分野で使われています。

特に三角関数の利用で最も歴史が古く、分かりやすいのが土地の測定を行う測量です。

元々、三角関数は測量のために誕生した側面もあり、三角関数ができたことで、広大な土地を全て調査する必要がありません。

その他、音声処理や画像処理といった分野でも三角関数は用いられています。

GASで三角関数が利用シーンは少ない

ただ、Google Apps Script(GAS)で三角関数を使う機会はあまりありません。

三角関数がプログラミングでよく使われるのは、ゲームなどです。

しかし、GASではスプレッドシートを利用した便利ツールなどが多いため、三角関数が必要になることが少ないです。

その上、スプレッドシートにも三角関数を計算できる関数が用意されているため、そちらで代用もできます。

GASの三角関数はMathオブジェクトで利用可能

Google Apps Script(GAS)で三角関数はMathオブジェクトに用意されています。

  1. Math.sin(num)
  2. Math.cos(num)
  3. Math.tan(num)

sin,cos,tan(サイン、コサイン、タンジェント)いずれも利用方法は同じで、引数にラジアル単位の角度を指定します。

三角関数のsin,cos,tanの数値を図示したもの

中学数学までの「90度」や「120度」といった指定ではなく、「π」や「¼π」などのラジアル単位の角度です。

そのため、Math.sinやMath.cos、Math.tanといった三角関数を使う場合は、Math.PIを利用しましょう。

GASで三角関数を利用するサンプルコード

実際に三角関数を利用するGoogle Apps Script(GAS)のサンプルコードを解説します。

サイン(正弦関数、コサイン(余弦関数)、タンジェント(正接関数)の3つの三角関数について、以下の4パターンのラジアルを引数に指定した結果をログ出力しています。

  1. 0
  2. π/4
  3. π/2
  4. π
function testSinCosTan() {
  //三角関数sinを4パターンログ出力
  console.log(Math.sin(0));
  console.log(Math.sin(Math.PI/4));
  console.log(Math.sin(Math.PI/2));
  console.log(Math.sin(Math.PI));
  //三角関数cosを4パターンログ出力
  console.log(Math.cos(0));
  console.log(Math.cos(Math.PI/4));
  console.log(Math.cos(Math.PI/2));
  console.log(Math.cos(Math.PI));
  //三角関数tanを4パターンログ出力
  console.log(Math.tan(0));
  console.log(Math.tan(Math.PI/4));
  console.log(Math.tan(Math.PI/2));
  console.log(Math.tan(Math.PI));
}
Google Apps Script(GAS)でMathオブジェクトを使った三角関数(sin,cos.tan)を何パターンかログ出力するサンプルコード

実行すると、ログ出力に三角関数の結果が出力されます。

Google Apps Script(GAS)でMathオブジェクトを使った三角関数(sin,cos.tan)を何パターンかログ出力するサンプルコードを実行すると、三角関数の結果が出力されるが、一部指数を含んだ表示に

その中に一部、指数表示の数値が3つほど表示されています。

これは、円周率のπは無理数で、有限な数値で表すことができないためです。

プログラミングでの円周率はあくまで擬似的に表現しているため、本来のπであれば3つは0が出力されます。

どういった数値になっているか確認するため、指数表示となった三角関数の数値をtoFixedメソッドで小数点を20桁までに限定して表示してみます。

Google Apps Script(GAS)でMathオブジェクトを使った三角関数(sin,cos.tan)を何パターンかログ出力するサンプルコードでtoFixedメソッドで表示桁数を指定することで、指数表示されていた三角関数の結果がいくつか見やすく整形

すると、0.0000000000000012246とほとんどゼロに近いものの、無理数πの誤差によって、完全な0にはならずに表示されています。

もし、三角関数を利用する際に、サイン、コサイン、タンジェントが0になるラジアルだった場合は、別途0として扱うように処理することで誤差が出なくなります。

逆三角関数のメソッドも用意

ここまでsin,cos,tanといった三角関数についてGoogle Apps Script(GAS)で利用できることを紹介してきました。

それ以外にも、アークサインやアークコサインと呼ばれる逆三角関数があります。

こうした逆三角関数についても、GASでは利用可能です。

  1. Math.asin(num)
  2. Math.acos(num)
  3. Math.atan(num)

通常の三角関数の各メソッドの前にarcを省略した「a」を追加することで逆三角関数の数値を取得することができます。

さらに、双曲線関数に用いられるハイパボリックサインやハイパボリックコサインもMathオブジェクトに用意されています。

まとめ・終わりに

今回、Google Apps Script(GAS)でsin,cos,tanの三角関数の使い方を紹介しました。

GASでの利用機会はあまりありませんが、三角関数を出力する関数がMathオブジェクトに用意されています。

Math.sin(num)Math.cos(num)という記述で、引数に指定した角度に対する正弦関数や余弦関数の値を出力します。

引数に指定する角度はラジアル単位での角度(0~2π)の指定し、90度などの度数は指定すると、想定しない数値が返ってくるので注意が必要です。

また、逆関数である逆三角関数も、asin,acos,atanといった形で利用できます。

GASで三角関数を利用するケースは少ないですが、必要になった場合は、紹介した方法で利用してみてください。