170 похожих чатов

У меня есть массив uint8_t и метод uint8_t Matrix::draw_char(uint16_t x,

uint16_t y, char simbol, uint8_t color, matrix_font_t font){
if(simbol == 32) return font.width >> 1; // если пробел
uint32_t charPtr = ((simbol - 32) * font.height * font.width) / 8; // переменная - указатель, двигающийся по массиву шрифта
uint8_t charWidth = 0;
for(uint16_t height = 0; height < font.height; height++){
for(uint16_t width = 0; width < (font.width / 8); width++){
for(uint8_t bit = 0; bit < 8; bit++){
if(font.font[charPtr] & (0b00000001 << bit)){
if(charWidth < width * 8 + bit) charWidth = width * 8 + bit;
draw_pixel(x + width * 8 + bit, y + height, color);
}
}
charPtr++;
}
}
return charWidth;
}

он работает норм и выводит символы корректно, но метод
uint16_t Matrix::draw_text(uint16_t x, uint16_t y, char* text, uint8_t color, matrix_font_t font){
for(uint8_t simbol = 0; simbol < strlen(text); simbol++){
x += 5 + draw_char(x, y, text[simbol], color, font);
}
return x;
}
уже не работает норм, латиница выводится четко, а кириллица нет(все символы заменяются на "п"(209) или "я"(210))
почему так?

11 ответов

20 просмотров

а куда ты выводишь?

Daniil- Автор вопроса
Ilya Zviagin
а куда ты выводишь?

на матрицу. Это по для мк. У меня растровое изображение всех символов в массиве uint8_t хранится

это что, ты ФОНТ сам пытаешься вывести ?

Daniil
на матрицу. Это по для мк. У меня растровое изобра...

так какая система, кодировка, и прочее?

Daniil- Автор вопроса
Ilya Zviagin
а кто тогда пишет "я"(210)) ?

после метода draw_text, метод draw_char перестает писать кириллицу адекватно и заменяет весь текст на буквы п и я (а в скобках я написал их код в аски)

Daniil
после метода draw_text, метод draw_char перестает ...

кажется это вопрос к методам draw_text и draw_char

Daniil- Автор вопроса
Ilya Zviagin
давай ты весь код пришлёшь..

всю либу? там тыщ 10 строк

Daniil- Автор вопроса
Ilya Zviagin
давай ты весь код пришлёшь..

там ничего вам больше и не надо, кроме этих двух методов

Daniil
всю либу? там тыщ 10 строк

ок, сделай тестовый пример со строкой типа "abcABCабвАБВ" и прогони, но также добавь распечатку посимвольную входных данных, для каждого символа его самого и его кода.

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
10
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
Карта сайта