[英]How to convert pixels into indices
問題是我需要更改矩陣,並且只能使用像素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
訪問map
上的某些位置,在這種情況下,每個字符的高度為30,寬度為30。
您只需將xy位置除以寬度和高度即可獲得索引。 row = y_pac / height
。 col = x_pac / width
我想我可以可視化您的輸入。
因此,您有一個包含位圖“圖像”字符集合的映射。 每個位圖“圖像”字符的大小可以改變(例如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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.