C++ 比较 Vector3
C++ Compare Vector3
您好,我遇到了以下问题。
我有 3 个坐标向量。例如,这些看起来像这样:
Vector3 vec1 = (100, 100, 100);
Vector3 vec2 = (150, 120, 110);
Vector3 vec3 = (-200, 120, 110);
现在我想将vec2和vec3与vec1进行比较,找出两个向量中哪个更接近vec1,然后输出一个true或false。
举个例子,这个函数可能是这样的:
if (Vectorcompare(vec1, vec2, vec3))
{
console.write("vec2 is nearer to vec1");
}
else
{
console.write("vec3 is nearer to vec1");
}
//Output would be "vec2 is nearer to vec1"
现在我想知道如何编写比较函数的代码?
必须假设坐标也可以进入负值范围,因此简单的加法或减法可能会导致错误的结果。
看下面的代码:
#include <iostream>
#include <vector>
class Vector3
{
public:
int X, Y, Z;
Vector3(int x, int y, int z) : X(x), Y(y), Z(z) {}
~Vector3() {}
};
double GetDistance(Vector3 vec1, Vector3 vec2)
{
return std::sqrt(std::pow((vec1.X - vec2.X), 2) + std::pow((vec1.Y - vec2.Y), 2) + std::pow((vec1.Z - vec2.Z), 2));
}
int main()
{
Vector3 vec1{ 100, 100, 100 };
Vector3 vec2{ 150, 120, 110 };
Vector3 vec3{ -200, 120, 110 };
if (GetDistance(vec1, vec3) < GetDistance(vec2, vec3))
{
// vec1 is nearer to vec3
}
else
{
// vec2 is nearer to vec3
}
}
在上面的代码中,我创建了一个函数 GetDistance()
来获取 2 个向量之间的距离。现在在 main()
函数中,您可以将 vec1
和 vec3
与 vec2
和 vec3
之间的距离进行比较,然后执行所需的操作。
您好,我遇到了以下问题。
我有 3 个坐标向量。例如,这些看起来像这样:
Vector3 vec1 = (100, 100, 100);
Vector3 vec2 = (150, 120, 110);
Vector3 vec3 = (-200, 120, 110);
现在我想将vec2和vec3与vec1进行比较,找出两个向量中哪个更接近vec1,然后输出一个true或false。
举个例子,这个函数可能是这样的:
if (Vectorcompare(vec1, vec2, vec3))
{
console.write("vec2 is nearer to vec1");
}
else
{
console.write("vec3 is nearer to vec1");
}
//Output would be "vec2 is nearer to vec1"
现在我想知道如何编写比较函数的代码?
必须假设坐标也可以进入负值范围,因此简单的加法或减法可能会导致错误的结果。
看下面的代码:
#include <iostream>
#include <vector>
class Vector3
{
public:
int X, Y, Z;
Vector3(int x, int y, int z) : X(x), Y(y), Z(z) {}
~Vector3() {}
};
double GetDistance(Vector3 vec1, Vector3 vec2)
{
return std::sqrt(std::pow((vec1.X - vec2.X), 2) + std::pow((vec1.Y - vec2.Y), 2) + std::pow((vec1.Z - vec2.Z), 2));
}
int main()
{
Vector3 vec1{ 100, 100, 100 };
Vector3 vec2{ 150, 120, 110 };
Vector3 vec3{ -200, 120, 110 };
if (GetDistance(vec1, vec3) < GetDistance(vec2, vec3))
{
// vec1 is nearer to vec3
}
else
{
// vec2 is nearer to vec3
}
}
在上面的代码中,我创建了一个函数 GetDistance()
来获取 2 个向量之间的距离。现在在 main()
函数中,您可以将 vec1
和 vec3
与 vec2
和 vec3
之间的距离进行比较,然后执行所需的操作。