首先,工程文件链接http://download.csdn.net/detail/shangdi712/9051999 使用工程文件时候,切记配置directx环境
其实,这个博客只介绍一个函数,就是D3DXMatrixTransformation2D,矩阵变换函数,在使用这个函数之前,我们需要先定义一个矩阵变量
D3DXMATRIX g_matWorld;
这是D3D里面定义的矩阵,用于实现图片的平移,旋转,缩放变换,而图像的锚点是什么呢,我们暂且把它认为成逻辑上的中心点,默认是在图片左上角,旋转的时候以它为中心,显示的时候,将这个点认为是图片坐标系的原点,也就是说,如果我们不设置位置的话,这个图片永远都把锚点放到最左上角,超出 的部分显示,好了,现在让我们看一下这个函数
D3DXMatrixTransformation2D(
&g_matWorld, //返回的矩阵
nullptr, //缩放的中心
0.0f, //影响缩放的因素
&D3DXVECTOR2(1.0f, 1.0f), //在X、Y方向的缩放量
&D3DXVECTOR2(0.0f, 0.0f), //旋转中心
fAngle, //旋转弧度
&g_playerPos//平移量
);
要使这个函数生效,我们需要调用这个函数
g_pSprite->SetTransform(&g_matWorld);
最后,我们一定要记得恢复渲染状态
D3DXMatrixIdentity(&g_matWorld);
但是,图片的变换,跟矩阵有什么关系呢,好的
假设我们有这样一个单位矩阵,再假设我们的图片坐标为写X 和Y,我们将x 和 y竖着写,最底下给0,然后和矩阵相乘会发生什么