Мой объект не будет вращаться и масштабироваться одновременно - PullRequest
0 голосов
/ 17 апреля 2011

Я работаю, чтобы мои объекты вращались на моей местности. Теперь вот моя проблема: я могу вращать свой объект, но не масштабировать его или масштабировать, но не вращать. Это зависит от того, какая из моих строк кода будет последней. Например, если код поворота будет последним, он будет вращаться, но не масштабироваться.

Вот мой код

D3DXMatrixMultiply(&currentFrame->exCombinedTransformationMatrix, &currentFrame->TransformationMatrix, parentMatrix);
D3DXMatrixScaling(&currentFrame->exCombinedTransformationMatrix, trans.Sx, trans.Sy, trans.Sz);
D3DXMatrixRotationX(&currentFrame->exCombinedTransformationMatrix, D3DXToRadian(trans.Rx));

Один из моих приятелей сказал, что я перезаписываю матрицу.

Итак, я попробовал это

D3DXMatrixMultiply(&currentFrame->exCombinedTransformationMatrix, &currentFrame->TransformationMatrix, parentMatrix);
D3DXMATRIX w;
D3DXMATRIX s;
D3DXMatrixScaling(&s, trans.Sx, trans.Sy, trans.Sz);
D3DXMatrixRotationX(&w, D3DXToRadian(trans.Rx));
D3DXMatrixMultiply(&currentFrame->exCombinedTransformationMatrix, &s, &w);

Результат приведенного выше кода теперь будет масштабироваться независимо от того, что.

1 Ответ

1 голос
/ 01 октября 2013

В качестве альтернативы, вы можете попробовать использовать D3DXMatrixTransformation или D3DXMatrixTransformation2D. Эти функции, кажется, заботятся обо всех сложностях (ну, по крайней мере, 2D).

http://msdn.microsoft.com/en-us/library/windows/desktop/bb205365(v=vs.85).aspx а также http://msdn.microsoft.com/en-us/library/windows/desktop/bb205366(v=vs.85).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...