在我的代码中,我试图在我的世界矩阵上运行两个(目前,可能在未来更多)矩阵转换。像这样:
D3DXMatrixRotationY(&worldMatrix, rotation);
D3DXMatrixTranslation(&worldMatrix, 0.0f, -1.0f, 0.0f);
其中旋转是一个不断变化的浮点数,worldMatrix 是一个 D3DXMATRIX。我的问题是只有转换语句中的最后一行代码有效。所以在上面的代码中,worldMatrix 会被翻译,但不会被旋转。但是如果我切换两个语句的顺序,worldMatrix 将被旋转,但不会被翻译。但是,我玩弄了它,这段代码工作得很好:
D3DXMatrixRotationY(&worldMatrix, rotation);
D3DXMATRIX temp = worldMatrix;
D3DXMatrixTranslation(&worldMatrix, 0.0f, -1.0f, 0.0f);
worldMatrix *= temp;
在此之后,worldMatrix 被平移和旋转。如果我只使用变量而不包括临时矩阵,为什么它不起作用?谢谢!!