|
|
我想让物体围绕自己 中心的轴原地旋转,可是他总围绕 另外一个轴,也不是地图中间的轴,我让它边旋转边移动的时候 它的旋转半径还是不变的,可是就是 不做原地旋转!我设置的矩阵代码:
world=D3DXMATRIX(1.0f,0.0f,0.0f,0.0f,
0.0f,1.0f,0.0f,0.0f,
0.0f,1.0f,1.0f,0.0f,
0.0f,1.0f,0.0f,0.0f);
D3DXMATRIX ok;//旋转矩阵
D3DXMatrixIdentity(&world);
vright.x=world._11;
vright.y=world._12;
vright.z=world._13;
vup.x=world._21;
vup.y=world._22;
vup.z=world._23;
vlook.x=world._31;
vlook.y=world._32;
vlook.z=world._33;
vpos.x=world._41;
vpos.y=world._42;
vpos.z=world._43;
D3DXVec3Normalize(&vlook,&vlook);
D3DXVec3Cross(&vright,&vup,&vlook);
D3DXVec3Normalize(&vright,&vright);
D3DXVec3Cross(&vup,&vlook,&vright);
D3DXVec3Normalize(&vup,&vup);
rolly+=0.03f;
D3DXMatrixRotationAxis(&ok,&vup,rolly);
D3DXVec3TransformCoord(&vlook,&vlook,&ok);
D3DXVec3TransformCoord(&vright,&vright,&ok);
world._11=vright.x;
world._12=vright.y;
world._13=vright.z;
world._21=vup.x;
world._22=vup.y;
world._23=vup.z;
world._31=vlook.x;
world._32=vlook.y;
world._33=vlook.z;
world._41=vpos.x;
world._42=vpos.y;
world._43=vpos.z;
m_pIDirect3DDevice->SetTransform(D3DTS_WORLD,&(world));
render();
请高手帮我看看,可能的话帮我改改 谢谢了~~ |
|