XMVectorNearEqual 是 DirectXMath 库中的一个函数,用于比较两个向量的每个分量是否在指定的误差范围内相等。以下是 XMVectorNearEqual 函数的基本信息:
BOOL XMVectorNearEqual(
  FXMVECTOR V1,
  FXMVECTOR V2,
  FXMVECTOR Epsilon
);

  •  参数

  - V1、V2:要比较的两个向量。
  - Epsilon:表示相等的误差范围的向量。

  •  返回值

  - 如果两个向量的每个分量都在指定的误差范围内相等,则返回 TRUE,否则返回 FALSE。

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

using namespace DirectX;

int main() {
    XMVECTOR vector1 = XMVectorSet(1.0f, 2.0f, 3.0f, 4.0f);
    XMVECTOR vector2 = XMVectorSet(1.01f, 2.02f, 3.03f, 4.04f);

    // 定义一个误差范围的向量
    XMVECTOR epsilon = XMVectorReplicate(0.1f);

    // 使用XMVectorNearEqual进行近似相等比较
    BOOL areEqual = XMVectorNearEqual(vector1, vector2, epsilon);

    // 输出结果
    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("Are vectors near equal? %s\n", areEqual ? "Yes" : "No");

    return 0;
}

在这个例子中,XMVectorNearEqual 函数用于比较两个向量的每个分量是否在指定的误差范围内相等。输出结果会告诉您这两个向量是否近似相等。


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