その他
Game Development Diary
Undead Syndrome 開発メモ
日々コレどうしよう2016年以降版
ブラウザゲーム
発火少年の地面焦がし
MAGICAL METEOR SHOWER
メタセコイア備忘録
東日本大震災(Aftermath of the 2011 Tohoku earthquake and tsunami)
ムカゴソフトウェア開発
e-mail:cqp00202@nifty.ne.jp
ベクトルの長さは、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 メソッド
5.3852
5.3852
ベクトルを正規化するには、まずベクトルの長さを求めてから、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 メソッド