NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

Arduino IDE(tan関数の使い方)

■tan関数
 tan関数は角度(ラジアン1)から正接(tangent)※2を計算する三角関数3です。

■使用例
 Arduino IDEで使用するtan関数の使い方は以下の通りです。試しにこのプログラムをArduino UNOで実行すると、図1の様にシリアルモニタ上にtan(-135)の値が「Y/X = 1 : tan(Rad) = 1 : tan(Rad) = 1」と出力されます。

#define PI 3.141592653589793      //もしくは float PI=atan(1)*4;

void setup() {
  Serial.begin(9600);             //9600bpsでシリアルポートを開く
}

void loop() {                     //{}内を無限ループで実行する
  /*二点の座標から正接を計算*/
  float XA = 0,                   //点ABのXY座標と半径rを宣言
        YA = 0,
        XB = -0.707107,
        YB = -0.707107,
        X,
        Y,
        r;
  X = XB - XA;                    //点A→BのベクトルX成分を計算
  Y = YB - YA;                    //点A→BのベクトルY成分を計算
  r = sqrt(pow(X, 2) + pow(Y, 2));//ベクトル(XY)から半径rを計算
  Serial.print("Y/X = ");         //"Y/X = "をシリアル出力
  Serial.print(Y / X);            //Y/Xをシリアル出力

  float deg = -135, Rad;          //点ABの角度θの度とラジアンを宣言
  /*PIを使って角度(度)から正接を計算(先頭の「#define PI」 が必要)*/
  Rad = deg / (180 / PI);         //度をラジアンに変換
  Serial.print(" : tan(Rad) = "); //" : cos(Rad) = "をシリアル出力
  Serial.print(tan(Rad));         //tan(Rad)をシリアル出力

  /*atanを使って角度(度)から正接を計算(先頭の「#define PI」 は不要)*/
  Rad = deg / (45 / atan(1));     //1rad=180/PI=45/atan(1)=57.296…°
  Serial.print(" : tan(Rad) = "); //" : tan(Rad) = "をシリアル出力
  Serial.println(tan(Rad));       //tan(Rad)をシリアル出力
  delay(1000);                    //1000ms(1秒)待ちます
}
イメージ 1
図1:プログラム例

 

 イメージ 1
図2:プログラム実行結果

■構文
 tan(rad)

■パラメータ
 rad    :角度の単位はラジアンで変数の型はfloatです。

■戻り値
 正接を表す数値 (double)、ラジアン・度・tanθの関係は表1の通りです。 

表1:ラジアン・度・tanθの関係
 ラジアン(rad)  度(°)  tan(rad)
 0.00π  0 0.00
 0.25π  45 1.00
 0.50π  90 ±∞
 0.75π  135 -1.00
 1.00π  180 0.00
 1.25π  225 1.00
 1.50π  270 ±∞
 1.75π  315 -1.00
※π=3.14159…
■補足

1ラジアンとは?
「円の半径に等しい長さの弧の中心に対する角度」と定義されています。
 参考に円をラジアン単位で区切ると図2左円グラフの様になり、ラジアンに円周率パイ(以下π)を掛けた単位で区切ると図2右円グラフの様になります。
 ラジアンと度の関係を表したものを表2に示します。

図2:ラジアンによる円周上の角度(単位:rad)
 
表2:ラジアンと度
項目 内容
 0
 1 57.296…
 n 180 
 2n 360 
※π=3.14159…
 
2 余弦定理(よげんていり、law of cosines, cosine formula)とは
 直角三角形で一つの鋭角について、斜辺に対する底辺の比を示したもので余弦定理と言い、cos(コサイン)がつかわれます。
 
 
3三角関数とは?
 三角関数(さんかくかんすう、英: trigonometric function)とは、平面三角法における、角の大きさと線分の長さの関係を記述する関数です。
 全部で6種類{sin(正弦),sec(正割),tan(正接),cos(余弦),csc(余割),cot(余接)三角関数が有り、主に使われるsin,cos,tanの詳細は図3,4の通りです。

イメージ 2

 
sinθ=Y/r
cosθ=X/r
tanθ=Y/X
 
θ=Asin(Y/r)
θ=Acos(X/r)
θ=Atan(Y/X)
 
 
 
 
 
 
 
 
図4:角度別三角関数戻り値
 

イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【ArduinoIDE reference】目次に戻る