jcxz 0 Posted October 8, 2021 · Report post 3 часа назад, Forger сказал: Нынче таких полно, как правило они входят в состав любой встраиваемой GUI, как необходимый инструментарий. Однажды так и делал. Потом этот труд кочевал из одного проекта в другой практически без изменений. Рисовал в ОЗУ, а в одной из задач просто оно целиком циклично (5...10 раз в сек) перегонялось в подобный монохромный ЖКИ экран. Вот после этого и говорят такое как выше: "Динамическая индикация невозможна на ILI9341 по SPI". Недостатки ваших "готовых решений" очевидны: Универсальность рождает монструозность. И потом оказывается, что какой-нить Cortex-M7 на сотнях МГц еле-еле может перерисовывать небольшой экранчик с ~10FPS. Кому-то чтобы нарисовать несколько прямых и пару строк текста, нужен МК на сотни МГц и с мегабайтом ОЗУ, а кто-то и на дохлом МК гораздо больше сможет. Потому что - без развесистых библиотек.... 2 часа назад, us4llu сказал: 1.Найти прямоугольные координаты всех точек знакоместа в позиции посередине 2.Пересчитать координаты в полярные. Похоже про Брезенхема так и не прочитали.... Ещё можно почитать что такое TrueType-шрифты и как они рисуются. Чтобы понять что потребуется. PS: Да - и с таким малопиксельным ЖКИ как у вас, без размывания краёв символов будет выглядеть совсем непотребно. Да даже и на более пиксельных ЖКИ для получения хорошей картинки (особенно с поворачиваемыми символами), очень полезно размывание краёв. Т.е. - нарисовать как: https://ru.wikipedia.org/wiki/Алгоритм_Брезенхэма а потом размыть яркость краевых точек, исходя из их удалённости от края. Можно на лету с формированием это делать. Наверняка автор того видео, что Вы привели, так и сделал. Раз у него получилось смотрибельно. Quote Ответить с цитированием Share this post Link to post Share on other sites
Forger 0 Posted October 8, 2021 · Report post 14 minutes ago, jcxz said: Потому что - без развесистых библиотек.... Опять старый холивар на ровном месте Так удалите универсальный виндоус/линукс и сидите в старом добром DOSе в командной строке. Никто не ж мешает )) У нас на работе есть один такой чудик под полтос возрастом, до сих пор живет с мамой, но кодер от бога, только он может чинить старинный военный антиквариат. Но скажи ему что нить про виндоус - так может и кинуть чем нить )) 14 minutes ago, jcxz said: Недостатки ваших "готовых решений" очевидны: Универсальность рождает монструозность Готовые GUI есть разные, под разные задачи и железо. Я описал выше три известных мне, с которыми так или иначе работал, и еще одну свою самопальную простую под текст и маленькие монохромы. Разумеется я не буду в тщедушный МК запихивать жирную GUI и наоборот. На самолете летать в соседнюю булочную - это тоже самое, что на велосипеде пересекать континенты. Quote Ответить с цитированием Share this post Link to post Share on other sites
krux 0 Posted October 8, 2021 · Report post готовый гуй на готовом линуксе требует процессора. а это ценник. вы хотите укладиываться в бюджет? или вы осваиваете необъятные объемы халявного финансирования? Quote Ответить с цитированием Share this post Link to post Share on other sites
aaarrr 0 Posted October 8, 2021 · Report post 3 minutes ago, krux said: готовый гуй на готовом линуксе требует процессора. а это ценник Мелкая SiP по цене может быть сопоставима с жирным МК при несравнимо более высоких возможностях в плане графики. Quote Ответить с цитированием Share this post Link to post Share on other sites
Forger 0 Posted October 8, 2021 · Report post 8 minutes ago, krux said: готовый гуй на готовом линуксе требует процессора. а это ценник. вы хотите укладиываться в бюджет? Это - уже другой вопрос, но он тоже решаем. Например, для ST есть бесплатная версия платной emWIN, которая залочена чисто под ST и называется STemWIN. Зато бесплатно для всех ST. На другом проце не запустится. Quote Ответить с цитированием Share this post Link to post Share on other sites
us4llu 0 Posted October 8, 2021 (edited) · Report post Алгоритм Брезенхэма для отрезков понял. Каким образом его применять для сглаживания повернутого символа? Координаты каждой точки сравнивать с координатами ближайшего пиксела? Не будет ли это громоздко? Процу надо еще заниматься остальными делами. Stemwin посмотрю. Edited October 8, 2021 by us4llu Quote Ответить с цитированием Share this post Link to post Share on other sites
MegaVolt 0 Posted October 8, 2021 · Report post Чтобы хранить фон под стрелкой нужно перерисовывать только кусочек фона ограниченный прямоугольником описанным вокруг стрелки. Это максимум. А минимум рисовать ту же стрелку по тому же алгоритму но ставить точки не цветом стрелки а цветами фона. Должно работать достаточно шустро. Quote Ответить с цитированием Share this post Link to post Share on other sites
jcxz 0 Posted October 8, 2021 · Report post 1 час назад, us4llu сказал: Алгоритм Брезенхэма для отрезков понял. Каким образом его применять для сглаживания повернутого символа? Не для сглаживания, а для рисования. 1 час назад, us4llu сказал: Координаты каждой точки сравнивать с координатами ближайшего пиксела? Вам надо оторваться от точко-ориентированного мышления. Не то даже на Cortex-M7 не дождётесь пока картинка построится. Не говоря уже о динамической индикации. Все прорисовки следует производить с пословным доступом к видеобуферу (32-битными словами). Quote Ответить с цитированием Share this post Link to post Share on other sites
mantech 0 Posted October 8, 2021 · Report post 14 часов назад, us4llu сказал: Линия-стрелка нарисована на каком то фоне. Что бы рисовать линию-стрелку под новым углом, нужно ее стереть под старым. Как сохранять фон под стрелкой, и как его восстанавливать? В данном видео вполне может быть использован верхний слой для стрелки, тогда ее не надо перерисовывать. А вообще, никто что-ли в институте на информатике не делал простейший пример перетаскивания линии по экрану при помощи XOR ? Quote Ответить с цитированием Share this post Link to post Share on other sites
byRAM 0 Posted October 8, 2021 · Report post Я понимаю приблизительно смысл затеи, но не понимаю ситуации возникновения задачи. Кому так сильно хочется ублюдочный циферблат на чб ЖКИ вместо цифр и/или линейной шкалы??? Quote Ответить с цитированием Share this post Link to post Share on other sites
dimka76 0 Posted October 8, 2021 · Report post 3 hours ago, mantech said: А вообще, никто что-ли в институте на информатике не делал простейший пример перетаскивания линии по экрану при помощи XOR ? Это как ? Quote Ответить с цитированием Share this post Link to post Share on other sites
dimka76 0 Posted October 8, 2021 · Report post 23 minutes ago, byRAM said: Я понимаю приблизительно смысл затеи, но не понимаю ситуации возникновения задачи. Кому так сильно хочется ублюдочный циферблат на чб ЖКИ вместо цифр и/или линейной шкалы??? Quote Ответить с цитированием Share this post Link to post Share on other sites
Herz 0 Posted October 8, 2021 · Report post 23 минуты назад, byRAM сказал: Я понимаю приблизительно смысл затеи... Кому так сильно хочется ублюдочный циферблат ... Вот к чему эта экспрессия? Вам не приходит в голову, что то, над чем Вы трудитесь, может кому-то показаться "ублюдочным"? Кому хочется - не наше с Вами дело. Есть что подсказать - делитесь. Нет - воздержитесь от субъективных оценок. Quote Ответить с цитированием Share this post Link to post Share on other sites
amaora 0 Posted October 9, 2021 · Report post Если надо поворачивать и масштабировать в низком разрешении то это не слишком простая задача, бесконечно можно оптимизировать и улучшать. Я бы наверно делал по технологии рисования текстурированных треугольников/прямоугольников. Исходные фигуры в растровом виде и немного большем разрешении чем нужно. Во многих местах можно одноцветные треугольники использовать, а текстуры для шрифтов. Делал такое раньше в целых числах на ARM9 с 64 мегабайтами памяти :) Quote Ответить с цитированием Share this post Link to post Share on other sites
mantech 0 Posted October 9, 2021 · Report post 17 часов назад, dimka76 сказал: Это как ? "При работе с обычным GDI для построения графического редактора очень полезен режим NotXor, который позволяет восстанавливать изображение под линией, рисуя ее повторно." Quote Ответить с цитированием Share this post Link to post Share on other sites