TOP

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



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

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

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

ベクトルの内積 : 角度を求める
//■ラジアンを返す
static float getRadian( Vector3 posbase, Vector3 pos1, Vector3 pos2 )
{
Vector3 calA = pos1 - posbase;
Vector3 calB = pos2 - posbase;
float lba = calA.Length();
float lca = calB.Length();
float radian = (float)Math.Acos(Vector3.Dot(calA, calB)
/ (lba * lca));
return radian;
}
Vector3 posbase = new Vector3( 0f , 10f , 0f);
Vector3 pos1 = new Vector3( 10f , 0f , 0f);
Vector3 pos2 = new Vector3( 10f , 10f , 0f);
//■ラジアンを返す
float ans = getRadian(posbase , pos1 , pos2);
//■ラジアン→角度へ
ans *= 180f / 3.141593f ;
//■スプライトフォントで描画
spriteBatch.DrawString(font
, ans.ToString()
, new Vector2(20f, 20f)
, new Color(Color.White.ToVector4()));
実行結果
アークコサインの詳細については……逆三角関数


