C言語,atan2()関数を使用して座標から角度を取得する

スポンサーリンク

鍛錬 688

C言語,atan2()関数を使用して座標から角度を取得する

xy座標において、「x軸」と「ベクトル(座標の点)」の間の角度を取得するには、atan2()関数(アークタンジェント2関数)を使用します。

atan2の図
 
以下は、atan2()関数についてです。

#include <math.h>

double atan2(double y, double x);
 

引数

以下は、上記の引数についてです。

引数 意味
double y 座標の y 点
double x 座標の x 点

戻り値

以下は、戻り値についてです。

単位はラジアン[rad]で返します。

戻り値
double x軸とベクトル(座標の点)の間の角度
スポンサーリンク

プログラム

以下は、座標から角度を取得するプログラム、get_atan2.c です。

今回は、xy座標を(1,\(\sqrt{ 3 }\))として角度 \(\theta\) [rad]を取得しています。

atan2の実行前

\(\theta\) [rad] = arctan2(x,y)
\(\theta\) [rad] = arctan2(1,\(\sqrt{ 3 }\))

(プログラム中で atan2() 関数を使用する場合は、ベクトル(座標の点)を(x,y)ではなく(y,x)として記述します。)

// include
#include <stdio.h>
#include <math.h>

// main
int main(void)
{
	double rad;
	double x, y;
	
	// 座標点x,yの値を格納
	x = 1;
	y = sqrt(3);
	
	// 角度を取得
	rad = atan2(y, x);
	printf("arctangent2(1, sqrt(3)) = %lf [rad]\n", rad);
	
	return 0;
}
スポンサーリンク

実行結果

以下は、プログラム get_atan2.c を実行しています。

***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ gcc -Wall -Wextra get_atan2.c -lm -o get_atan2
***@ubuntu:~/***/test/c$ ./get_atan2
arctangent2(1, sqrt(3)) = 1.047198 [rad]

 
上記に示した通り、xy座標を(1,\(\sqrt{ 3 }\))とした場合の、x軸とベクトル(座標の点)の間の角度は 1.047198 [rad] であることが分かりました。

\(\theta\) = arctan2(x,y)
\(\theta\) = arctan2(1,\(\sqrt{ 3 }\))
\(\theta\) = 1.047198 [rad]

atan2の実行結果

タイトルとURLをコピーしました