|
发表于 2011-8-16 10:33:00
|
显示全部楼层
Re:关于direct中绕任意轴旋转的问题?
还可以用下面的函数,指明世界空间里的一个旋转中心,并用四元数来表示旋转
D3DXMATRIX *WINAPI D3DXMatrixTransformation( D3DXMATRIX *pOut,
CONST D3DXVECTOR3 *pScalingCenter,
CONST D3DXQUATERNION *pScalingRotation,
CONST D3DXVECTOR3 *pScaling,
CONST D3DXVECTOR3 *pRotationCenter,
CONST D3DXQUATERNION *pRotation,
CONST D3DXVECTOR3 *pTranslation
);
例:
D3DXQUATERNION quaTmp;
D3DXMATIRX matWorld;
D3DXVERTOR3 v1,v2;
float fAngle;
D3DXMatrixIdentity(&matWorld);
D3DXQuaternionRotationAxis(&quaTmp,D3DXVec3Normalize(&(v1-v2)),fAngle);
D3DXMatrixTransformation(&matWorld,NULL,NULL,NULL,&(v1+v2)/2,&quaTmp,NULL);
|
|