C++ 如何在directx11c++;

C++ 如何在directx11c++;,c++,directx,C++,Directx,如何获得在direct x 11中绘制的对象的中心?我在旋转物体时遇到了一个问题,它们围绕自己的位置旋转,但它们的位置是从一个角开始的,旋转时会产生圆周运动。我正试着绕中心旋转(原点) 我在旋转前使用以下命令进行平移: setObjectWorld(XMMatrixIdentity()); setTranslation(XMMatrixTranslation(getPositionX(), getPositionY(), getPositionZ())); setRotationAxis(X

如何获得在direct x 11中绘制的对象的中心?我在旋转物体时遇到了一个问题,它们围绕自己的位置旋转,但它们的位置是从一个角开始的,旋转时会产生圆周运动。我正试着绕中心旋转(原点)

我在旋转前使用以下命令进行平移:

setObjectWorld(XMMatrixIdentity());

setTranslation(XMMatrixTranslation(getPositionX(), getPositionY(), getPositionZ()));

setRotationAxis(XMVectorSet(0.0f, 1.0f, 0.0f, 0.0f));
setRotation(XMMatrixRotationAxis(getRotationAxisVector(), delta));

setObjectWorld(getTranslationMatrix() * getRotationMatrix());
结果是:


平移前应进行旋转/缩放

这通常作为对象设计的一部分,并考虑到对象在场景中的行为。对于非常简单的对象,可以通过数学方法完成,但对于任何稍微复杂的对象,对象设计器通常需要将其包含在模型中。