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

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

Здравствуйте!

есть задача сделать стрелочный индикатор на экране жки. Со шкалой примерно понятно - или вывести рисунок, или нарисовать дуги с делениями.

Как рисовать стрелку в динамике? 

Вопрос второй. есть набор символов. как повернуть символ на произвольный угол?

 

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


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

Самый очевидный ответ - использовать ГОТОВОЕ решение - какую нить GUI, где есть уже нужный набор функционала и даже виджетов ))

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


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

самый очевидный, не значит самый простой.

Подкиньте хотя бы идеи как рисуется стрелка в движении и как повернуть символ?

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


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

https://ru.wikipedia.org/wiki/Алгоритм_Брезенхэма

а про символ повернуть - такое на малопиксельных жки не делают чтобы не ухудшать читаемость. кто вас такое просит сделать?

 

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


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

 

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

именно в этом проекте пытался найти функцию, которая поворачивает символы, но не нашел ничего по-моему похожего. или не так искал, или не то.

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

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


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

рисуете линию-стрелку по тем же координатам, но цветами из фонового изображения. оно же у вас все покоординатно есть

на видео - не жки

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


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

TFT. это как-то меняет постановку задачи? видео с тфт, я хочу стелать на чб жки или олед.

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

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


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

пиеселей больше, объем данных на экране больше, размер фонового изображения, являющегося куском самой программы больше.

эдак можно и FullHD моник прицепить, а потом плакаться что места в памяти микроконтроллера не хватает.

по знакогенератору тоже разная постановка задачи может быть. для жки это жестро вбитые пиксельные шрифты, а для tft может уже и truetype надо с растр превращать

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


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

160х128 - вполне малопиксельный экран. Есть примерно такие же олед и монохромные жки по разрешению. Сам принцип поворота интересен. об обьеме памяти контроллера пока разговор не идет.

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

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


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

25 minutes ago, us4llu said:

Как сохранять фон под стрелкой, и как его восстанавливать?

Если Вы можете отрисовывать быстро (незаметно для глаза) весь фон, то не проще ли его перерисовать?  Если это невозможно по этой или другим причнам, то перерисовывайте половину фона, где есть стрелка. Если и это долго или заметно, то найдите прямоугольник, диагональю которого является стрелка, и перерисовывайте фон только в этом прямоугольнике. Как найти - задача для 7 класса по геометриии. Думаю, что почитаете и вспомните.

46 minutes ago, us4llu said:

Подкиньте хотя бы идеи как рисуется стрелка в движении и как повернуть символ?

Стрелка рисуется в движении циклическим стиранием (см. выше) и отрисовкой новой стрелки. Угол поворота пропорционален величине, которую Вы отображаете.

 

По повороту символов ничего готового не подскажу, но полагаю, что надо взять учебник геометрии или просто посидеть подумать. Можно в инете поискать. Задача специфическая... Хотя, можно нарисовать символ заранее, повёрнытым на различные углы и отрисовывать нужны.

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


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

Со стрелкой понятно, спасибо за подсказки.

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

это вариант - набить таблицу символов под нужными углами. Судя по видео угол поворота до 90 градусов, через 1 градус если делать, то штук по 45 в каждую сторону. если ничего лучшего не придумается - придется пробовать такой вариант.

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

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


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

Во-первых, откуда дуги? Стрелочных навалом линейных. А во-вторых, убедиться, что затея бесполезная, можно на каждом углу — полно мультиметров с такими ч/б дугами, и пары секунд работы с ними достаточно, чтобы понять, что это абсолютно неработоспособное решение.

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


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

1 hour ago, us4llu said:

так?

Здесь сложно однозначно ответить. Слишком много переменных: скорость обновления экрана, разрешение этого экрана, наличие других задач у микроконтроллера (в контексте ОСРВ или без ОСРВ). Возможно, что Вам нужно будет поставить эксперименты. Можно использовать концепцию фреймбуффера, и рисовать сначала всё в ОЗУ, это будет очень быстро, если делать это грамотно. Там можно всё перерисовывать. А потом бросать дисплею весь буфер. Но если интерфейс медленный, то нужно рисовать кусками. Поверьте, однозначного ответа нет. Я много раз наблюдал за коллегами, которые занимаются "гуями" (GUI, графический интерфейс пользователя).

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


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

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

как повернуть символ на произвольный угол?

http://mymcu.ru/storage/content/articles/FTDI/APP_EFO_FT800_Indikator.pdf

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


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

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

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

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

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

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

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

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

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

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