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
对于最后两个函数XMVector3TransformCoord和XMVector3TransformNormal,你无需显式地指定w坐标。XMVector3TransformCoord总是令使用vw = 1,而XMVector3TransformNormal总是令vw = 0。
文件下载(已下载 1005 次)发布时间:2014/10/8 下午8:01:19 阅读次数:5812
