ベクトルの角度を計算するプログラム

位置ベクトルの角度を計算するプログラムを紹介します。

座標(x,y)角度を計算するには以下の公式を使います。

 \displaystyle\theta=\arccos\left(\frac{y}{x}\right)

これだけだと、(0,1)と(0,-1)が区別つきません。

ですから、

y<0のときは360-角度にします。

実際にプログラムを組むと以下のようになります。

プログラム

#define PI 3.141592

int main(void){
	float x,y,angle;
	//座標の読み込み
	printf("x=");
	scanf("%f",&x);
	printf("y=");
	scanf("%f",&y);

	angle=acos(x/sqrt(x*x+y*y));
	angle=angle*180.0/PI;
	if(y<0)angle=360.0-angle;

	printf("角度=%f",angle);
	return 0;
}

著者:安井 真人(やすい まさと)