问题是我需要更改矩阵,而我只能访问像素xy中的这些位置,如何将xy转换为索引?

例如:

char *map[20][17] = { "WWWWWWWWWWWWWWWW", "WFFFFFFFFFFFFFFW", "WFWWWWWFFWWWWWFW", "WFFFFFFFFFFFFFFW", "WFWWWWWFFWWWWWFW", "WFFFFFFFFFFFFFFW", "WFWWWWWWWWWWWWFW", "WFFFFFFWWFFFFFFW", "WFFFWFFWWFFWFFFW", "WFWWWFFFFFFWWWFW", "WFWFFFWWWWFFFWFW", "WFFFWFFFFFFWFFFW", "WFWWWFWFFWFWWWFW", "WFFFWFWWWWFWFFFW", "WFFFFFFFFFFFFFFW", "WFFFWWWWWWWWFFFW", "WFWFFFFFFFFFFWFW", "WFWWWWWFFWWWWWFW", "WFFFFFFFFFFFFFFW", "WWWWWWWWWWWWWWWW"};

int x_pac = 240, y_pac = 360;

使用x_pacy_pac访问map上的某些位置,在这种情况下,每个字符的高度= 30,宽度= 30。

最佳答案

我想我可以可视化您的输入。

因此,您有一个包含位图“图像”字符集合的映射。
每个位图“图像”字符的大小可以改变(例如30x30)。

举例说明:您有4x4字符映射,每个字符的尺寸为6x6。



如果要访问特定字符的特定像素,请使用以下公式:

// matrix dimension
matrix_row = <row>
matrix_col = <col>

// bitmap dimension
char_row = <char_row>
char_col = <char_col>
num_pixels = char_row * char_col

// get specific "character" in grid
character_index = ((matrix_row - 1)  * matrix_col) * num_pixels

// get specific "pixel" in character
pixel = character_index * ((char_row - 1) * char_col + pixel_offset)

关于c++ - 如何将像素转换为索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49548351/

10-13 07:00