那位高手帮我看看以下代码
g_pGroundPoly.normal是地面多边形的法向量,我想把一个多边形(normal为GVector3(0,1,0))
旋转成与g_pGroundPoly平行,以下是求其旋转matrix,但我发觉求出来的matrix不对,是不是无
法用axis/angle来求?
GMatrix4 mat;
mat.Identity();
GVector3 vNor = g_pGroundPoly.normal;
vNor.Normalize();
GVector3 vAxis = Cross( vNor, GVector3( 0.f, 1.f, 0.f ) );
float fRot = asinf( vAxis.Len() );
if ( fRot != 0 )
{
mat.Rotate( vAxis, 3.14159f / 2.f - fRot );
//mat.Rotate( vAxis, fRot );
}