gpt4 book ai didi

c - 获取二维矩阵的相邻元素(仅限深度一)

转载 作者:太空宇宙 更新时间:2023-11-04 04:57:09 25 4
gpt4 key购买 nike

我有一张 800 x 600 的图片。我想把它当做一个矩阵,得到相邻的元素

例如

(0,0) (1,0) (2,0) (3,0)

(0,1) (1,1) (2,1) (3,1)

(0,2) (1,2) (2,2) (3,2)

(0,3) (1,3) (2,3) (3,3)

示例解决方案:(0,0) 相邻于: (1,0) (0,1) (1,1)

(1,1) 相邻于:(0,0) (1,0) (2,0) (2,1) (2,2) (1,2) (0,2) (0, 1)

所以我写了一个结构数组,我将把这些点中的每一个存储到

typdef struct point
{
int x;
int y;
}point[800*600];

所以我的第一个想法是实现一个 dfs,但并没有真正奏效,所以我想听听外界的意见,让自己走上正轨。谢谢

最佳答案

最终答案取决于您如何将 2D 显示排列可视化为 1D 阵列(“行在前,列在后”或“列在前,行在后”)。

假设“行优先”(沿行的像素递增 1,沿列的像素递增 ROW_LENGTH):

首先使用一些定义来设置 ROW_LENGTH 和 COL_LENGTH 的值

#define ROW_LENGTH 800
#define COL_LENGTH 600

然后您可以在需要更改时轻松调整大小,而不会影响其余代码的工作方式。

typdef struct point
{
int x;
int y;
}point[ROW_LENGTH*COL_LENGTH];

之后,可以通过类似的方式获得相邻点:

adjacentWest = point[(y*ROW_LENGTH) + (x-1)];
adjacentNorth = point[((y+1)*ROW_LENGTH) + x];

您需要将 North 和 South 调整为 +1 或 -1,具体取决于您的原点是在显示屏的左上角还是左下角。

关于c - 获取二维矩阵的相邻元素(仅限深度一),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5504592/

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