Jump to content

    
Sign in to follow this  
us4llu

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

Recommended Posts

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

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

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

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

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

 

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

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

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

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

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

 

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

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

Share this post


Link to post
Share on other sites
14 minutes ago, jcxz said:

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

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

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

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

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

 

14 minutes ago, jcxz said:

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

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

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

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

 

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
3 minutes ago, krux said:

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

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

Share this post


Link to post
Share on other sites
8 minutes ago, krux said:

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

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

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

Share this post


Link to post
Share on other sites

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

Stemwin посмотрю.

 

 

Edited by us4llu

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
1 час назад, us4llu сказал:

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

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

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

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

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

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

Share this post


Link to post
Share on other sites
14 часов назад, us4llu сказал:

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
3 hours ago, mantech said:

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

Это как ?

Share this post


Link to post
Share on other sites
23 minutes ago, byRAM said:

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

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

 

Share this post


Link to post
Share on other sites
23 минуты назад, byRAM сказал:

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

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
17 часов назад, dimka76 сказал:

Это как ?

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this