XMVectorMultiplyAdd 是 DirectXMath 库中的一个函数,用于将两个向量的每个分量进行逐元素相乘,然后将第三个向量的相应分量加到结果上。以下是 XMVectorMultiplyAdd 函数的基本信息:
XMVECTOR XMVectorMultiplyAdd(
  FXMVECTOR V1,
  FXMVECTOR V2,
  FXMVECTOR V3
);

  •  参数

  - V1、V2:要相乘的两个向量。
  - V3:要加到相乘结果上的向量。

  •  返回值

  - 返回一个新的向量,其中每个分量是相应输入向量分量的乘积加上第三个向量的相应分量。

使用示例:
#include <DirectXMath.h>

using namespace DirectX;

int main() {
    XMVECTOR vector1 = XMVectorSet(2.0f, 4.0f, 6.0f, 8.0f);
    XMVECTOR vector2 = XMVectorSet(1.0f, 2.0f, 3.0f, 4.0f);
    XMVECTOR vector3 = XMVectorSet(0.5f, 1.0f, 1.5f, 2.0f);

    // 对每个分量进行逐元素相乘,并加上第三个向量的相应分量
    XMVECTOR result = XMVectorMultiplyAdd(vector1, vector2, vector3);

    // 输出结果
    printf("Vector 1: (%.2f, %.2f, %.2f, %.2f)\n",
           XMVectorGetX(vector1), XMVectorGetY(vector1),
           XMVectorGetZ(vector1), XMVectorGetW(vector1));

    printf("Vector 2: (%.2f, %.2f, %.2f, %.2f)\n",
           XMVectorGetX(vector2), XMVectorGetY(vector2),
           XMVectorGetZ(vector2), XMVectorGetW(vector2));

    printf("Vector 3: (%.2f, %.2f, %.2f, %.2f)\n",
           XMVectorGetX(vector3), XMVectorGetY(vector3),
           XMVectorGetZ(vector3), XMVectorGetW(vector3));

    printf("Result: (%.2f, %.2f, %.2f, %.2f)\n",
           XMVectorGetX(result), XMVectorGetY(result),
           XMVectorGetZ(result), XMVectorGetW(result));

    return 0;
}

在这个例子中,XMVectorMultiplyAdd 函数用于对两个向量的每个分量进行逐元素相乘,并将第三个向量的相应分量加到结果上,返回一个新的向量。输出结果包含原始三个向量和相乘加法后的结果向量。


转载请注明出处:http://www.zyzy.cn/article/detail/27131/Win32 API/Directxmath.h/XMVectorMultiplyAdd