Перейти к содержанию
    

стрелочный индикатор на ЖКИ

3 часа назад, Forger сказал:

Нынче таких полно, как правило они входят в состав любой встраиваемой GUI, как необходимый инструментарий.

Однажды так и делал. Потом этот труд кочевал из одного проекта в другой практически без изменений. Рисовал в ОЗУ, а в одной из задач просто оно целиком циклично (5...10 раз в сек) перегонялось в подобный монохромный ЖКИ экран.

Вот после этого и говорят такое как выше: "Динамическая индикация невозможна на ILI9341 по SPI".  :sarcastic:

Недостатки ваших "готовых решений" очевидны: Универсальность рождает монструозность. И потом оказывается, что какой-нить Cortex-M7 на сотнях МГц еле-еле может перерисовывать небольшой экранчик с ~10FPS. Кому-то чтобы нарисовать несколько прямых и пару строк текста, нужен МК на сотни МГц и с мегабайтом ОЗУ, а кто-то и на дохлом МК гораздо больше сможет. Потому что - без развесистых библиотек....

 

2 часа назад, us4llu сказал:

1.Найти прямоугольные координаты всех точек знакоместа в позиции посередине

2.Пересчитать координаты в полярные.

Похоже про Брезенхема так и не прочитали....

Ещё можно почитать что такое TrueType-шрифты и как они рисуются. Чтобы понять что потребуется.

 

PS: Да - и с таким малопиксельным ЖКИ как у вас, без размывания краёв символов будет выглядеть совсем непотребно. Да даже и на более пиксельных ЖКИ для получения хорошей картинки (особенно с поворачиваемыми символами), очень полезно размывание краёв. Т.е. - нарисовать как: https://ru.wikipedia.org/wiki/Алгоритм_Брезенхэма

а потом размыть яркость краевых точек, исходя из их удалённости от края. Можно на лету с формированием это делать. Наверняка автор того видео, что Вы привели, так и сделал. Раз у него получилось смотрибельно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 minutes ago, jcxz said:

Потому что - без развесистых библиотек....

Опять старый холивар на ровном месте :dash2: 

Так удалите универсальный виндоус/линукс и сидите в старом добром DOSе в командной строке. Никто не ж мешает ))

У нас на работе есть один такой чудик под полтос возрастом, до сих пор живет с мамой, но кодер от бога, только он может чинить старинный военный антиквариат.

Но скажи ему что нить про виндоус - так может и кинуть чем нить ))

 

14 minutes ago, jcxz said:

Недостатки ваших "готовых решений" очевидны: Универсальность рождает монструозность

Готовые GUI есть разные, под разные задачи и железо. Я описал выше три известных мне, с которыми так или иначе работал, и еще одну свою самопальную простую под текст и маленькие монохромы.

Разумеется я не буду в тщедушный МК запихивать жирную GUI и наоборот. 

На самолете летать в соседнюю булочную  - это тоже самое, что на велосипеде пересекать континенты.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

готовый гуй на готовом линуксе требует процессора. а это ценник. вы хотите укладиываться в бюджет? или вы осваиваете необъятные объемы халявного финансирования?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 minutes ago, krux said:

готовый гуй на готовом линуксе требует процессора. а это ценник

Мелкая SiP по цене может быть сопоставима с жирным МК при несравнимо более высоких возможностях в плане графики.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, krux said:

готовый гуй на готовом линуксе требует процессора. а это ценник. вы хотите укладиываться в бюджет?

Это - уже другой вопрос, но он тоже решаем.

Например, для ST есть бесплатная версия платной emWIN, которая залочена чисто под ST и называется STemWIN. Зато бесплатно для всех ST. На другом проце не запустится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Алгоритм Брезенхэма для отрезков понял. Каким образом его применять для сглаживания повернутого символа? Координаты каждой точки сравнивать с координатами ближайшего пиксела? Не будет ли это громоздко? Процу надо еще заниматься остальными делами.

Stemwin посмотрю.

 

 

Изменено пользователем us4llu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы хранить фон под стрелкой нужно перерисовывать только кусочек фона ограниченный прямоугольником описанным вокруг стрелки. Это максимум. 
А минимум рисовать ту же стрелку по тому же алгоритму но ставить точки не цветом стрелки а цветами фона. Должно работать достаточно шустро.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, us4llu сказал:

Алгоритм Брезенхэма для отрезков понял. Каким образом его применять для сглаживания повернутого символа?

Не для сглаживания, а для рисования.

1 час назад, us4llu сказал:

Координаты каждой точки сравнивать с координатами ближайшего пиксела?

Вам надо оторваться от точко-ориентированного мышления. Не то даже на Cortex-M7 не дождётесь пока картинка построится. Не говоря уже о динамической индикации.

Все прорисовки следует производить с пословным доступом к видеобуферу (32-битными словами).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 часов назад, us4llu сказал:

Линия-стрелка нарисована на каком то фоне. Что бы рисовать линию-стрелку под новым углом, нужно ее стереть под старым. Как сохранять фон под стрелкой, и как его восстанавливать?

В данном видео вполне может быть использован верхний слой для стрелки, тогда ее не надо перерисовывать.

А вообще, никто что-ли в институте на информатике не делал простейший пример перетаскивания линии по экрану при помощи XOR ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я понимаю приблизительно смысл затеи, но не понимаю ситуации возникновения задачи.

Кому так сильно хочется ублюдочный циферблат на чб ЖКИ вместо цифр и/или линейной шкалы???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, mantech said:

А вообще, никто что-ли в институте на информатике не делал простейший пример перетаскивания линии по экрану при помощи XOR ?

Это как ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

23 minutes ago, byRAM said:

Я понимаю приблизительно смысл затеи, но не понимаю ситуации возникновения задачи.

Кому так сильно хочется ублюдочный циферблат на чб ЖКИ вместо цифр и/или линейной шкалы???

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

23 минуты назад, byRAM сказал:

Я понимаю приблизительно смысл затеи...

Кому так сильно хочется ублюдочный циферблат ...

Вот к чему эта экспрессия? Вам не приходит в голову, что то, над чем Вы трудитесь, может кому-то показаться "ублюдочным"?

Кому хочется - не наше с Вами дело. Есть что подсказать - делитесь. Нет - воздержитесь от субъективных оценок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если надо поворачивать и масштабировать в низком разрешении то это не слишком простая задача, бесконечно можно оптимизировать и улучшать. Я бы наверно делал по технологии рисования текстурированных треугольников/прямоугольников. Исходные фигуры в растровом виде и немного большем разрешении чем нужно. Во многих местах можно одноцветные треугольники использовать, а текстуры для шрифтов. Делал такое раньше в целых числах на ARM9 с 64 мегабайтами памяти :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 часов назад, dimka76 сказал:

Это как ?

"При работе с обычным GDI для построения графического редактора очень полезен режим NotXor, который позволяет восстанавливать изображение под линией, рисуя ее повторно."

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...