gpt4 book ai didi

c++ - 如果索引表示为 x y 位置,则检查哪些 2d 数组元素彼此更接近

转载 作者:行者123 更新时间:2023-11-28 00:00:13 26 4
gpt4 key购买 nike

所以我有一个二维数组,其中包含一些无关紧要的值。假设索引表示网格上的 x 和 y 位置,并且我在该网格上有三个点:主要点和两个额外点如何检查哪个额外点最接近主要点。这是我试过的代码,但它似乎不太管用。

if(abs(mainX - extra1X) + abs(mainY - extra1Y) < abs(mainX - extra2X) + abs(mainY - extra2Y))
{
cout << "Extra point 1 is closer" << endl;
}
else if(abs(mainX - extra1X) + abs(mainY - extra1Y) > abs(mainX - extra2X) + abs(mainY - extra2Y))
{
cout << "Extra point 2 is closer" << endl;
}
else
{
cout << "They are equally close" << endl;
}

非常感谢所有帮助:)

最佳答案

您正在寻找The Distance Formula :

double Distance = sqrt(pow((X1 - X2), 2) + pow((Y1 - Y2), 2));

为两个点实现并执行,然后检查每个点的 Distance 值以确定哪个点更近。

这应该有效:

double DistanceOne = sqrt(pow((MainX - ExtraXone), 2) + pow((MainY - ExtraYone), 2));
double DistanceTwo = sqrt(pow((MainX - ExtraXtwo), 2) + pow((MainY - ExtraYtwo), 2));

if(DistanceOne < DistanceTwo)
cout << "Point 1 is closer.\n";
else if (DistanceOne > DistanceTwo)
cout << "Point 2 is closer.\n";
else
cout << "Points 1 and 2 are on the same distance from Point Main.\n";

关于c++ - 如果索引表示为 x y 位置,则检查哪些 2d 数组元素彼此更接近,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39706185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com