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 ответов

7 просмотров

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

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абвАБВ" и прогони, но также добавь распечатку посимвольную входных данных, для каждого символа его самого и его кода.

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

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

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Ребят, что лучше для реверса: гидра или ида?
En Vind Av Sorg
26
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
а не подскажете вот это скрин из какой IDE ?
Iluha Companets
14
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Народ всем привет Подскажите, как включить самописные dll библиотеки в итоговую сборку Сейчас при запуске dev сервера локально формируется папка build, из которой запускается...
Андрей
4
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Карта сайта