長さが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;
}