gpt4 book ai didi

c - 查找二维 vector 数组中的右上元素

转载 作者:行者123 更新时间:2023-11-30 15:03:44 25 4
gpt4 key购买 nike

我有一个由 9 个 vector 组成的数组,它们组成了一个 3x3 点阵。现在我想找到最“左上角”(标记为O)和最“右上角”(标记为D)的元素。整个东西不是矩形的,并且数组没有排序。所以它可能看起来像这样:

array[0] x= 771 y=324
array[1] x= 968 y=323
array[2] x= 868 y= 397
array[3] x= 1065 y= 368
array[4] x= 1164 y= 326
array[5] x= 768 y= 470
array[6] x= 966 y= 471
array[7] x= 1000 y= 452
array[8] x= 1165 y= 472

O----x----D
| | |
| | |
x----x----x
| | |
| | |
x----x----x

我真的不知道从哪里开始。我是否同时比较 x 和 y?

   FindD(int& x, int& y)
{
for (int i = 0; i < array.size(); i++)
{
for (int j = 0; j < array.size(); j++)
{
if(i != j)
{

//compare the array elements
}

}
}
}

FindO(int& x, int& y)

编辑:我应该指出,这些点不是任意放置在平面上的。它们始终以 3x3 图案出现,但点之间的距离存在一些像素差异。此外,整个图案可能会稍微旋转。这实际上就是为什么我想找到最右上角和最左边的元素。获取旋转角度。

最佳答案

O----x----D
| | |
| | |
T----x----T
| | |
| | |
x----x----x

假设“稍微旋转”意味着上面标记为 T 的点的 y 值不能高于您要查找的点,并假设您的坐标从左下角开始并不断增加y 值向上,x 值向右增加:

找到 y 值最高的三个点,其中 x 值最低的点是左边的点。

关于c - 查找二维 vector 数组中的右上元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40585906/

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