zoukankan      html  css  js  c++  java
  • D3DXVec3TransformCoord 函数 D3DXVec3TransformNormal 函数

    http://www.cnblogs.com/kex1n/archive/2011/08/02/2125337.html

    D3DXVec3TransformCoord 函数

     

    用矩阵变换3-D向量,并且用w = 1投影结果。

     

    定义:

     

    D3DXVECTOR3 *WINAPI D3DXVec3TransformCoord(      

        D3DXVECTOR3 *pOut,

     

        CONST D3DXVECTOR3 *pV,

     

        CONST D3DXMATRIX *pM

     

    );

     

    Parameters

     

    pOut

     

    [in, out] 指向 D3DXVECTOR3 结构的操作结果。

     

    pV

     

    [in] 指向 D3DXVECTOR3 结构的向量。

     

    pM

     

    [in] 指向 D3DXMATRIX 结构的变换矩阵。

     

    Return Value

     

    指向 D3DXVECTOR3 结构的变换后的向量。

     

     

    说明:

     

    这个函数用矩阵pM变换3-D向量pV (x, y, z, 1),并且用w = 1投影结果。

     

    函数返回值跟pOut 参数返回值是一样的。这样可以让函数D3DXVec3TransformCoord作为其它函数的参数使用。

     

    函数信息:

     

    Header

    d3dx9math.h

    Import library

    d3dx9.lib

    Minimum operating systems

    Windows 98

     

    函数相关:

     

    D3DXVec3Transform, D3DXVec3TransformNormal

     

     

    D3DXVec3TransformNormal 函数

     


     

    用矩阵变换3-D向量标准形式。

     

    定义:

     

    D3DXVECTOR3 *WINAPI D3DXVec3TransformNormal(      

        D3DXVECTOR3 *pOut,

     

        CONST D3DXVECTOR3 *pV,

     

        CONST D3DXMATRIX *pM

     

    );

     

    Parameters

     

    pOut

     

    [in, out] 指向 D3DXVECTOR3 结果的操作结果。

     

    pV

     

    [in] 指向 D3DXVECTOR3 结构的向量。

     

    pM

     

    [in] 指向 D3DXMATRIX 结构的矩阵。

     

    返回值:

     

    指向 D3DXVECTOR3 结构的变换后的向量。

     

     

    说明:

     

    这个函数用矩阵pM变换向量pV标准形式 (x, y, z, 0),不是齐次坐标形式。

     

    如果一个非仿射矩阵变换,那么这个矩阵要作逆运算后再转置才传给本函数。

     

    函数返回值跟pOut 参数返回值是一样的。这样可以让函数D3DXVec3TransformNormal作为其它函数的参数使用。

     

    函数信息:

     

    Header

    d3dx9math.h

    Import library

    d3dx9.lib

    Minimum operating systems

    Windows 98

     

    区别:

     

    坐标和向量是有区别的:向量的第四维数值是0,坐标的第四维数值是1

     

     
              向量 = 两个坐标的差值      第四维同样做减法,结果是0
     
          向量的坐标变换用D3DXVec3TransformNormal,点用D3DXVec3TransformCoord。D3DXVec3Transform和D3DXVec3TransformCoord相似,区别在于后者变换后将w投射回1
     
    实际执行计算的时候是:
    D3DXVec3TransformCoord 
    VOut.x = V1.x * M.11 + V1.y * M.21 + V1.z * M.31 + M.41
    VOut.y = V1.x * M.12 + V1.y * M.22 + V1.z * M.32 + M.42
    VOut.z = V1.x * M.13 + V1.y * M.23 + V1.z * M.33 + M.43 
     
    因为是向量,第四维不计算:
    D3DXVec3TransformNormal 
    VOut.x = V1.x * M.11 + V1.y * M.21 + V1.z * M.31 
    VOut.y = V1.x * M.12 + V1.y * M.22 + V1.z * M.32 
    VOut.z = V1.x * M.13 + V1.y * M.23 + V1.z * M.33
  • 相关阅读:
    FFT学习及简单应用(一点点详细)
    Codeforces 1131 (div 2)
    【NOI2012】魔幻棋盘
    【hdu多校联考第二场】Odd Shops
    【Helvetic Coding Contest 2018】B2. Maximum Control (medium)
    解线性同余方程组
    Math teacher's homework
    【NOIP模拟赛】一道挖掉背景的数学题
    逆向基础-模块隐藏之断链
    解决请求筛选模块被配置为拒绝包含的查询字符串过长的请求
  • 原文地址:https://www.cnblogs.com/dragon2012/p/2937918.html
Copyright © 2011-2022 走看看