相应变换函数
#include <Windows.h>
#include <DirectXMath.h>
#include <DirectXPackedVector.h>
#include <iostream>
using namespace std;
using namespace DirectX;
using namespace DirectX::PackedVector;
int main()
{
//构建一个缩放矩阵
XMMATRIX XM_CALLCONV XMMatrixScaling(float ScaleX, float ScaleY, float ScaleZ); //缩放系数
//用一个3D向量中的分量来构建缩放矩阵
XMMATRIX XM_CALLCONV XMMatrixScalingFromVector(FXMVECTOR Scale); //缩放系数(Sx,Sy,Sz)
//构建一个绕x轴旋转的矩阵Rx
XMMATRIX XM_CALLCONV XMMatrixRotationX(float Angle); //以顺时针方向按弧度θ进行旋转
//构建一个绕y轴旋转的矩阵Ry
XMMATRIX XM_CALLCONV XMMatrixRotationY(float Angle); //以顺时针方向按弧度θ进行旋转
//构建一个绕z轴旋转的矩阵Rz
XMMATRIX XM_CALLCONV XMMatrixRotationZ(float Angle); //以顺时针方向按弧度θ进行旋转
//构建一个平移矩阵
XMMATRIX XM_CALLCONV XMMatrixTranslation(float OffsetX, float OffsetY, float OffsetZ); //平移系数
//用一个3D向量中的分量来构建平移矩阵
XMMATRIX XM_CALLCONV XMMatrixTranslationFromVector(FXMVECTOR Offset); //平移系数(tx,ty,tz)
//计算向量与矩阵的乘积VM,此函数为针对点的变换,即总是默认令Vw = 1
XMVECTOR XM_CALLCONV XMVector3TransformCoord(FXMVECTOR V, //输入向量V
CXMMATRIX M); //输入矩阵M
//计算向量与矩阵的乘积VM,此函数为针对向量的变换,即总是默认令Vw = 0
XMVECTOR XM_CALLCONV XMVector3TransformNormal(FXMVECTOR V, //输入向量V
CXMMATRIX M); //输入矩阵M
}
在执行XMVector3TransformCoord时,默认Vw = 1
在执行XMVector3TransformNormal时,默认Vw = 0
不需要用户显示设置w分量