|
sf73
|
|
Как перевернуть массив шрифта22.04.2015, 23:40. Показов 16623. Ответов 23
Метки нет (Все метки)
Как перевернуть массив шрифта (вывод на дисплей). Есть вертикальный шрифт , перевернуть его в горизонтальный, на Cи AVR в atmel studyo 6.2
Грубо говоря, объявляю массив unsykned char verb[i], где i от 0 до 7 и при выводе буквы считываю из файла шрифта букву побайтно 8 байт в массив verb[] из 8-ми элементов. к примеру буква П получается verb[0]=0 verb[1]=127 (т.е. все единички в разрядах) verb[2]=1 verb[3]=1 verb[4]=1 verb[5]=1 verb[6]=127 verb[7]=0 При таком выводе буква получается на дисплее на боку. нужно повернуть её на 90 градусов. Нужно как я понимаю считывать поразрядно в первый байт строки и подставлять в столбец, из первого разряда первой строки - в последний разряд первого столбца, второй разряд первой строки - последний разряд уже второго столбца и тд. Покажите плз как считать один бит из элемента массива и присвоить это значение соответствующему разряду соответствующего значению массива. Понимаю что простой вопрос, но что-то туплю. киньте плз пример кода. По поиску примеров натыкаюсь только на элементарные битовые операции (установка на портах битов в 0 и 1 ;) Может алгоритм есть готовый уже? На ум приходит только замена строк столбцами в матрице (транспонирование), поворот квадратной матрицы на 90 градусов. Но не пойму, как с таким массивом как массивом бит работать. |
|
| 22.04.2015, 23:40 | |
|
Ответы с готовыми решениями:
23
Как перевернуть массив? Как перевернуть массив?
|
|
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
|
||
| 17.05.2015, 21:43 | ||
Развлекаться так развлекаться ) Приложил листинги всех трёх вариантов для cortex-m3 с оптимизациями -O2 и -O3 Разница стала незначительная, а на -O3 мой вариант уже проигрывает варианту voyd1509 [10.21 Кб]
0
|
||
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
|
|
| 18.05.2015, 01:46 | |
|
Методы из http://www.hoskirsdelight.org/hdcodetxt ... ose8.c.txt попробуйте - те на арме должны порвать попиксельную обработку, как тузик грелку.
0
|
|
|
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 392
|
|||
| 18.05.2015, 04:37 | |||
Но в неактивный видео буфер он переносится попиксельно. Т.е. используя простейший алгоритм поставить пиксель/удалить пиксель можно обслуживать и рисование и вывод шрифта. Причем вывод шрифта любого размера, в любую точку экрана, под любым углом :) В недостаточную скорость я пока не упирался. Надо будет как нибудь проверить что то типа скроллинга на экранчике 320х240.
0
|
|||
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
|
|
| 18.05.2015, 13:00 | |
|
Btosk Worryor, не в обиду - но вы, похоже, не программист?
Во первых, у программистов особый психоз, и написать "гибкий" алгоритм за счёт снижения производительности на порядок или более - это надо себя ломать. А то так и до slowsort докатиться можно. Во вторых, программист с опытом сразу видит, как этот алгоритм может быть устроен - и ни нудности, ни громоздкости тут нет. На одну строку - один сдвиг двухбайтового числа на заданное количество бит, OR. Ну и та же операция для маски + AND. Навскидку - получится короче, чем работать по пикселам. Работа по пикселам оправдана, или когда макетируешь что-то, или когда есть действительно заметная разница в сложности кода, а отрисовка даже после замедления в 10 раз заведомо не является узким местом (например, поворот символа на ПК при сборке прошивки). Или когда графика прямо ориентирована на пикселы (редкий случай, обычно есть или спрайты, или вертикальные/горизонтальные отрезки и прочие прямоугольники).
0
|
|
| 18.05.2015, 13:00 | |
|
Помогаю со студенческими работами здесь
24
Как перевернуть одномерный массив? Как перевернуть массив рандомных чисел? Как перевернуть массив или данные в ListBox
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|