ゲームプログラミング技術集 
ひっと

単位ベクトルと計算方法

単位ベクトルの計算方法とプログラミング例を紹介

単位ベクトルと計算方法

長さが1のベクトルを単位ベクトルと呼びます。
方向の成分だけを持ったベクトルなので、いろんな計算に活用されます。

単位ベクトルを計算するには、元のベクトルを長さで割ります。
単位ベクトル = ベクトル / ベクトルの長さ
単位ベクトルの使い方:
たとえばAからBへ向けて、dだけ進む位置を知りたい場合...

ABベクトルを単位ベクトルにしてdをかけると、その位置が分かります。
Aからd進んだ位置 = ABの単位ベクトル * d

単位ベクトルを計算する プログラミング例 (2次元)

3次元のプログラミング例へ

#include <math.h>

//ベクトルの定義
struct Vector2D{
	double x;
	double y;
};

//単位ベクトルを計算する
Vector2D get_unit_vector( Vector2D v ) {
	//ベクトルの長さ
	double length = pow( ( v.x * v.x ) + ( v.y * v.y ), 0.5 );

	//XY各成分を長さで割る
	Vector2D unit;
	unit.x = v.x / length;
	unit.y = v.y / length;

	return unit;
}


単位ベクトルを計算する プログラミング例 (3次元)

2次元のプログラミング例へ

#include <math.h>

//ベクトルの定義
struct Vector3D{
	double x;
	double y;
	double z;
};

//単位ベクトルを計算する
Vector3D get_unit_vector( Vector3D v ) {
	//ベクトルの長さ
	double length = pow( ( v.x * v.x ) + ( v.y * v.y ) + ( v.z * v.z ), 0.5 );

	//XYZ各成分を長さで割る
	Vector3D unit;
	unit.x = v.x / length;
	unit.y = v.y / length;
	unit.z = v.z / length;

	return unit;
}

戻る     次へ