рисовать прогресс-линию в зависимости от числа
- Войдите на сайт для отправки комментариев
Доброго дня :) Возникла идея, для своего радиоприемика на ардуино сделать прогресс-бар. Полоску с точкой, которая симулирует шкалу аналогового радиоприемника, в зависимости от настроенной частоты...
По сути мне нужно рисовать линию,
u8g.drawHLine(127, 0, 8);
при частоте 89.5 чтобы линия отсутствовала, и по мере перемещения к краю фм диапазона... до 108.0 Мгц, становилась от точки А до точки Б полностью. Может быть кто подскажет элегантное решение?) Есть переменная chastota, которая в которой и находится заветное число 99.5 или 105,6 (фм частота)... Были мысли сделат фиксированные точки отображения "ползунка" через if. Типа
else if(chastota >= 85.5 && friendlyVolt < 90.0) {
u8g.drawHLine(127, 0, 8);
Но это как-то костыльно :(
создайте массив значение и из него дёргайте
или функцией map воспользуйтесь
Навскидку так:
нашел описание в инете, сделал) спасибо всем! сейчас покажу что вышло )))
кстати, код вышел вот такой
А вышло вот что) https://youtu.be/MqFE9IH37gc
У меня еще такой вопрос... как можно заметить в видео, выравнивание частоты и rds ps происходит по левой стороне... а вот как бы это замутить по центру или по правому боку? Как в ворде? Грубо говоря сейчас частота после ста и до 100 фм видна вот так:
105.5 |
90.0 |
Визуально хочется сделать, чтобы было так:
105.5 |
90.0|
Но... как?
Если вывод частоты вот такой:
по центру или по правому боку? Как в ворде? Грубо говоря сейчас частота после ста и до 100 фм видна вот так:
105.5 |
90.0 |
Визуально хочется сделать, чтобы было так:
105.5 |
90.0|
Но... как?
Если вывод частоты вот такой:
Очевидно, надо сперва получить ширину бокса, которая будет требоваться для отрисовки нужной строки, и потом просчитать смещение слева, банальная арифметика. В U8Glib есть функция https://github.com/olikraus/u8glib/wiki/userreference#getstrwidth - как раз для получения ширины в пикселях строки, которую можно отрисовать текущим шрифтом.
вы не могли бы с примером показать :( если вам не трудно
вы не могли бы с примером показать :( если вам не трудно
мультимакс, зачем тут пример-то? Возьмите ширину экрана и вычтите их нее ширину строки - вот вам левая координата вашей надписи. Или вам нужно арифметику 2-ого класса обьяснить на примере? :)
А вышло вот что) https://youtu.be/MqFE9IH37gc
лучше бы не выкладывал - смотреть не возможно.
если не получается снять - не берись.
Не хочет отображаться. :(
Что означает эта запись, как ее понять ???
progress = progress > 100 ? 100 : progress;
Что означает эта запись, как ее понять ???
progress = progress > 100 ? 100 : progress;
отвечаю на свой же вопрос... наконец то нашел информацию... если progress >100 то progress =100 иначе progress =progress