2つのベクトルのなす角度
Posted: 2009年2月03日(火) 08:14
よろしくお願いします。
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;
}
を作ったのですがこの二つのベクトルが限りなく同じ場合、値がおかしくなるのですが
どうしてでしょうか?
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;
}
を作ったのですがこの二つのベクトルが限りなく同じ場合、値がおかしくなるのですが
どうしてでしょうか?