2つのベクトルのなす角度

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
MEME

2つのベクトルのなす角度

#1

投稿記事 by MEME » 16年前

よろしくお願いします。
2つのベクトルのなす角度を求める関数
float 2VecRotate(const D3DXVECTOR3* v1,const D3DXVECTOR3* v1)
{
float r = ( float )acos( D3DXVec3Dot( v1 , v2 ) / ( D3DXVec3Length( v1 ) * D3DXVec3Length( v2 ) ) );
D3DXVECTOR3 n;
D3DXVec3Cross( &n , v1 , v2 );
if( n.y < 0 ) r = ( PI * 2 ) - r;
return r;
}
を作ったのですがこの二つのベクトルが限りなく同じ場合、値がおかしくなるのですが
どうしてでしょうか?

たいちう

Re:2つのベクトルのなす角度

#2

投稿記事 by たいちう » 16年前

ソースコードで気づいた点は、関数の2つめの引数もv1になっていること。
今、環境がないけど、これは原因じゃないの?
関数名が、2VecRotateというのもおかしいね。
ちゃんとコンパイルできるソースコードをコピーして載せたか確認してください。

> を作ったのですがこの二つのベクトルが限りなく同じ場合、値がおかしくなるのですが
> どうしてでしょうか?

どうおかしくなるのかの説明をしてください。
入力例と期待する結果と期待はずれな結果を。

閉鎖

“C言語何でも質問掲示板” へ戻る