TOP

ただいま開発中です

フォローはどうぞお気楽に! @mukagosoft

SoundCloud (ゲームBGM集)


PC Games List

その他
Game Development Diary
Undead Syndrome 開発メモ
日々コレどうしよう2016年以降版


Xbox LIVE Indie Game


PSMゲーム


ブラウザゲーム
発火少年の地面焦がし
MAGICAL METEOR SHOWER


メタセコイア備忘録
東日本大震災(Aftermath of the 2011 Tohoku earthquake and tsunami)


ムカゴソフトウェア開発
e-mail:cqp00202@nifty.ne.jp


[TOPに戻る]

ベクトルの長さと単位ベクトル
ベクトルの長さ

ベクトルAの長さは、|A|で表す。

ベクトルの長さは、x成分、y成分、z成分を2乗して、それらを足し合わせた値の平方根を取ることで求められる。


Vector3 vecA = new Vector3(2f, 3f, 4f);

//=============================================================
//■ベクトルの長さを求める
//=============================================================

float lengthA = (float)Math.Sqrt((vecA.X * vecA.X)
                               + (vecA.Y * vecA.Y)
                               + (vecA.Z * vecA.Z));

//■スプライトフォントで描画

spriteBatch.DrawString(font
    , lengthA.ToString("F4")
    , new Vector2(100f, 100f)
    , new Color(Color.White.ToVector4()));

//=============================================================
//■答え合わせ
//=============================================================

lengthA = vecA.Length();    //長さ;

//■スプライトフォントで描画

spriteBatch.DrawString(font
    , lengthA.ToString("F4")
    , new Vector2(100f, 130f)
    , new Color(Color.White.ToVector4()));

Vector3.Length メソッド

ベクトルの長さを返します(戻り値 : float型)。
実行結果

5.3852
5.3852

単位ベクトル

長さが1のベクトルを単位ベクトルと言う。
ベクトルの長さを1にすることを正規化と言う。

ベクトルを正規化するには、まずベクトルの長さを求めてから、x成分、y成分、z成分に、1/ベクトルの長さを掛け合わせる。


Vector3 vecA = new Vector3(2f, 3f, 4f);

//=============================================================
//■ベクトルの長さを求める
//=============================================================

float lengthA = (float)Math.Sqrt((vecA.X * vecA.X)
                               + (vecA.Y * vecA.Y)
                               + (vecA.Z * vecA.Z));

//=============================================================
//■単位ベクトルを求める
//=============================================================

Vector3 unit_vecA = vecA * (1 / lengthA);

//■スプライトフォントで描画

spriteBatch.DrawString(font
    , unit_vecA.ToString()
    , new Vector2(100f, 100f)
    , new Color(Color.White.ToVector4()));

//=============================================================
//■答え合わせ
//=============================================================

vecA.Normalize();    //正規化;

//■スプライトフォントで描画

spriteBatch.DrawString(font
    , vecA.ToString()
    , new Vector2(100f, 130f)
    , new Color(Color.White.ToVector4()));

Vector3.Normalize メソッド

ベクトルを正規化して、単位ベクトルを作成します。
実行結果


【関連】内積と外積の違い
【関連】ベクトルの内積の特徴
【関連】内積 : 角度を求める
【関連】ベクトルの外積の特徴
【関連】外積 : X軸とY軸からZ軸を求める

[TOPに戻る]

ムカゴソフトウェア開発
MUKAGOSOFTWARE DEVELOPMENT
e-mail:cqp00202@nifty.ne.jp
ゲームプログラミングのメモとか。ど忘れ対策!
2016年以降版
ムカゴソフトウェア開発
MUKAGOSOFTWARE DEVELOPMENT