问题是我需要更改矩阵,我只需要以像素using System.Linq;
a = a.OrderBy(e => (int) Math.Abs(e - b)).ToArray();
foreach (var x in a) Console.Write("{0} ", x);
和x
的形式访问这些位置,如何将y
和x
转换为一个指标?
例如:
y
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_pac
访问y_pac
上的某个位置,在这种情况下,每个字符都有height = 30和width = 30.
答案 0 :(得分:1)
你可以简单地将x-y位置除以宽度和高度。 row = y_pac / height
。 col = x_pac / width
答案 1 :(得分:0)
我想我可以看到你的意见。
所以你有一个包含位图集合的地图"图像"字符。 每个位图的大小"图像"字符可以变化(例如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)