Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
придумать алгоритм заполнения экрана
Отправлено
mandigit 12 августа 2009, г. 12:06
есть:
экран 32x32 точек
экранная память представляет собой область размерами 256 байт
для кадой точки отведено 2 бита
нужно взвести бит2 для каждой точки экрана, где бит1 сброшен, а вокруг имеется хотя-бы одна точка с взведенным битом1
XXX
XOX
XXX
здесь 0 - точка (со сброшенным битом1), для которой нужно установить бит2, если хотя-бы в одной из точек X установлен бит1
физический смысл - обрамление светлого символа на экране черным контуром для лучшей видимости
поточечно такой анализ несложно провести, но хочется быстрый алгоритм, желательно обрабатывающий экранную память побайтово
Составить ответ | Вернуться на конференцию.
Ответы
- Инвертировать весь экран. наляпать его четыре раза со сдвигом на один бит в четырёх координатах, и последний раз ляпнуть в конце по старым координатам опять же инвертировав. если нада и по диагоналям-ляпать 8 раз. :) - UraGun (12.08.2009, 14:27:19 89.21.93.238, пустое)
- а по вертикали аналогично ? Тут копирование этой области во временную светит, иначе понаставишь точек... - DASM (12.08.2009, 13:24:22 89.163.14.219, пустое)
- типа такого - koyodza (12.08.2009, 12:22:25 93.73.221.90, 511 байт)
- поправка - koyodza (12.08.2009, 12:30:34 93.73.221.90, 113 байт)
- Всяко крутится всё в счётчике. Ну и пользуйся: чет. /нечет. Младший бит присваеваешь экранному биту если - строка нужна "рваная". Иначе - всегда единицы. - Trashy (12.08.2009, 12:19:8 192.168.2.112,213.167.60.22, пустое)
- имхо самым быстрым способом будет тупо инверсия вводимого символа, все остальное - "танцы с бубнами" - RED_DRAGON (12.08.2009, 12:09:8 92.54.101.134, пустое)