3.6 XNA数学库中的转换函数

下面我们总结一下XNA数学库中有关变换的函数:

// 创建一个缩放矩阵:
XMMATRIX XMMatrixScaling(
    FLOAT ScaleX,
    ScaleY,
    FLOAT ScaleZ);    // 缩放因子

// 从向量中的分量中创建一个缩放矩阵:
XMMATRIX XMMatrixScalingFromVector(
    FXMVECTOR Scale); // 缩放因子(sx,sy,sz)

// 创建一个绕x轴旋转的矩阵 : Rx
XMMATRIX XMMatrixRotationX(
    FLOAT Angle); // 顺时针的旋转角度θ

// 创建一个绕y轴旋转的矩阵: Ry
XMMATRIX XMMatrixRotationY(
    FLOAT Angle); // 顺时针的旋转角度θ

// 创建一个绕z轴旋转的矩阵: Rz
XMMATRIX XMMatrixRotationZ(
    FLOAT Angle); // 顺时针的旋转角度θ

// 创建一个绕任意轴旋转的矩阵 : Rn
XMMATRIX XMMatrixRotationAxis(
    FXMVECTOR Axis,     // 旋转轴
    FLOAT Angle);       // 顺时针的旋转角度θ

// 创建一个平移矩阵:
XMMATRIX XMMatrixTranslation(
    FLOAT OffsetX,
    FLOAT OffsetY,
    FLOAT OffsetZ); // 平移因子

// 从向量的分量中创建一个平移矩阵:
XMMATRIX XMMatrixTranslationFromVector(
    FXMVECTOR Offset); // 平移因子(tx , ty ,tz)

// 计算向量-矩阵乘积vM:
XMVECTOR XMVector3Transform(
    FXMVECTOR V,    // Input v
    CXMMATRIX M);   // Input M

// 计算向量-矩阵乘积vM,其中vw = 1,用于变换点的坐标:
XMVECTOR XMVector3TransformCoord(
    FXMVECTOR V,   // Input v
    CXMMATRIX M);  // Input M

// 计算向量-矩阵乘积vM,其中vw = 0,用于变换向量:
XMVECTOR XMVector3TransformNormal(
    FXMVECTOR V,     // Input v
    CXMMATRIX M);    // Input M

对于最后两个函数XMVector3TransformCoordXMVector3TransformNormal,你无需显式地指定w坐标。XMVector3TransformCoord总是令使用vw = 1,而XMVector3TransformNormal总是令vw = 0。

文件下载(已下载 1004 次)

发布时间:2014/10/8 下午8:01:19  阅读次数:4322

2006 - 2024,推荐分辨率 1024*768 以上,推荐浏览器 Chrome、Edge 等现代浏览器,截止 2021 年 12 月 5 日的访问次数:1872 万 9823 站长邮箱

沪 ICP 备 18037240 号-1

沪公网安备 31011002002865 号