NOBのArduino日記!

NOBのArduino日記!

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

Arduino IDE(cos関数の使い方)

■cos関数
 cos関数は角度(ラジアン※1)から余弦(cosine)※2を計算する三角関数※3です。

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

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

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

void loop() {                                        //{}内を無限ループで実行する
  /*二点の座標から余弦を計算*/
  float XA = 0, YA = 0, XB = -0.707107, YB = -0.707107, X, Y, r; //点ABのXY座標と半径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/r = ");                          //"Y/r = "をシリアル出力
  Serial.print(Y / r);                               //Y/rをシリアル出力

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

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

 

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

■構文
 cos(rad)

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

■戻り値
 -1から1の範囲で返します。またラジアン・度・cosθの関係は表1の通りです。 

表1:ラジアン・度・cosθの関係
 ラジアン(rad)  度(°)  cos(rad)
 0.00π  0  1.00
 0.25π  45  0.71
 0.50π  90  0.00
 0.75π  135  -0.71
 1.00π  180  -1.00
 1.25π  225  -0.71
 1.50π  270  0.00
 1.75π  315  0.71
※π=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】目次に戻る