sin関数
試しにこのプログラムをArduino UNOで実行すると、図1の様にシリアルモニタ上にsin(-135)の値が「X/r = -0.71 : sin(Rad) = -0.71 : sin(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("X/r = "); //"X/r = "をシリアル出力 Serial.print(X / r); //X/rをシリアル出力 float deg = -135, Rad; //点ABの角度θの度とラジアンを宣言 /*PIを使って角度(度)から正弦を計算(先頭の「#define PI」 が必要)*/ Rad = deg / (180 / PI); //度をラジアンに変換 Serial.print(" : sin(Rad) = "); //" : sin(Rad) = "をシリアル出力 Serial.print(sin(Rad)); //sin(Rad)をシリアル出力 /*atanを使って角度(度)から正弦を計算(先頭の「#define PI」 は不要)*/ Rad = deg / (45 / atan(1)); //1rad=180/PI=45/atan(1)=57.296…° Serial.print(" : sin(Rad) = "); //" : sin(Rad) = "をシリアル出力 Serial.println(sin(Rad)); //sin(Rad)をシリアル出力 delay(1000); //1000ms(1秒)待ちます }
図1:プログラム例
sin(rad)のパラメータ
戻り値:-1から1の範囲で返します。
またラジアン・度・sinθの関係は表1の通りです。
図1:シリアルモニタ出力結果
※以下補足です
「円の半径に等しい長さの弧の中心に対する角度」と定義されています。
ラジアンと度の関係を表したものを表2に示します。
図2:ラジアンによる円周上の角度(単位:rad)
※π=3.14159…
※2 正弦定理(せいげんていり、law of sines)とは
三角形の内角の正弦とその対辺の長さの関係を示したもので正弦法則とも言い、sin(サイン)がつかわれます。
※3:三角関数とは?
三角関数(さんかくかんすう、英: trigonometric function)とは、平面三角法における、角の大きさと線分の長さの関係を記述する関数です。