logo

Красиво привлекаем клиентов

Рекламу на электронных табло в виде бегущей строки мы видим довольно часто. Лично я как-то не задумывался о том, можно ли сделать бегущие строки на улице. Не задумывался до тех пор, пока не увидел в русскоязычном разделе форума на соответствующую тему, которая называлась «помогите сделать бегущую строку».

Бегущая строка. То есть, он движется справа налево, а если его настроить, может двигаться слева направо, а может сверху вниз или наоборот. Топикстартер то не слишком конкретно сформулировал задачу, поэтому я решил рассмотреть самый вариант и просто каждую букву алфавита представить в виде матрицы 5х5 точек. Соответственно, каждую букву шрифта «нарисовано вручную», так что никаких претензий к эстетике не приемлю.


Объяснение того, что здесь делается, приведен на самой иллюстрации, но в двух словах: есть 2 массива — один из буквами алфавита (я выбрал латиницу, там меньше букв), а второй — с нашим шрифтом. Второй массив — трехмерный, содержит каждую букву в отдельном «шаре».

В цикле введенное пользователем слово делится на отдельные буквы, потом эти буквы ищем в массиве с алфавитом и получаем номер буквы, по которым с 3D массива вытаскиваем матрицу с символом. Во второй половине иллюстрации (той, что справа) из символов образуется слово. Код там не очень аккуратный, например дважды используется транспонирования матрицы, хотя можно было и без этого обойтись, но по сравнению со второй половиной программы — это шедевр. Стили необходимо обязательно настраивать под рекламный бокс, иначе будет некрасиво выглядеть.

Здесь все вообще страшно неэстетично, зато каждый может теперь поработать над оптимизацией.

Двухмерный массив со словом мы делим на горизонтальные «полоски» (всего 5, поскольку такая высота каждого символа). Далее в цикле каждую из этих «полосок» циклически сдвигаем на 1 символ (константа -1 показывает, что сдвигаем слева), снова формируем из них 2D массив и выводим на лицевую панель.

Вам также будет интересно:

Расскажите друзьям об этой странице!

Оставить комментарий

Яндекс.Метрика