BUR-62 переработана отрисовка графика на отрезки по грануляции #13

Merged
APervov merged 1 commits from bur-62 into dev 2026-07-05 08:05:36 +00:00
Owner

Задача

БУР-62 · График. отрезки min–avg–max вместо сплошной линии

Сейчас диапазон min–avg–max отображается тремя точками с вертикальной линией между ними.

Но акцент должен быть сделан только на avg, а min и max акцентировать не надо.

В идеальном варианте вообще бы свести яркость вертикальной линии между min–avg к нулевой яркости в значении min, яркость вертикальной линии между avg–max к нулевой яркости в значении max.

Делать вместе с БУР-36 (пересекаются).


Сейчас точки на графике соединяются сплошной непрерывной линией.

Но само считывание показаний может иметь пробелы (по отсутствию связи, например). Примеров полно в демо-базе (бывший неочищенный cloud).

В таких промежутках не должно быть сплошной непрерывной линии.

Нетривиальная задача: фактически рисуем точки, соединяя их там, где показание есть, но обрывая там, где показания нет.

Самое простое решение — вообще не рисовать соединительную линию, а рисовать отрезок шириной в один интервал грануляции.


Сейчас диапазон min–avg–max отображается тремя точками с вертикальной линией между ними.

Акцент только на avg, min и max акцентировать не надо.

В идеале: яркость вертикальной линии между min–avg → к нулю в min; между avg–max → к нулю в max.


Объединённое решение

На каждую точку из history — прямоугольник шириной в один интервал грануляции и высотой от min до max, акцент на avg.

Или то же самое — крестик той же ширины и высоты, avg в центре.

Если значения в данных нет — не рисуем ничего.

БУР-36 · График. точка — вертикальная полоса min..max

Переработать отображение точек на графике.

Сейчас точки соединяются линией. Надо: каждая точка — вертикальная полоса от min до max, шириной в один интервал грануляции.

Акцент на том, что полоса занимает свой временной слот, а не рисуется как точка на линии.


Пересекается с БУР-62 (но там шире описано: разрывы в потоке, акцент на avg, градиент). Делать вместе или свести в одно решение.

Что сделал

  1. На данном этапе решил пойти по пути простого решения, чтобы снизить вероятность ошибок, и сохранить код максимально простым, насколько это было возможно
  2. Отрезок строится на основе грануляции - это отрезок основанный на avg значении по Y и шириной равной грануляции по X.
  3. От отрезка отходят полосы (шириной в отрезок грануляции) min и max с затуханием в 0 к точкам экстремума
image.png image.png
# Задача ## БУР-62 · График. отрезки min–avg–max вместо сплошной линии Сейчас диапазон min–avg–max отображается тремя точками с вертикальной линией между ними. Но акцент должен быть сделан только на **avg**, а min и max акцентировать не надо. В идеальном варианте вообще бы свести яркость вертикальной линии между min–avg к нулевой яркости в значении min, яркость вертикальной линии между avg–max к нулевой яркости в значении max. Делать **вместе с БУР-36** (пересекаются). --- Сейчас точки на графике соединяются **сплошной непрерывной линией**. Но само считывание показаний может иметь **пробелы** (по отсутствию связи, например). Примеров полно в демо-базе (бывший неочищенный cloud). В таких промежутках **не должно быть** сплошной непрерывной линии. Нетривиальная задача: фактически рисуем точки, соединяя их там, где показание есть, но **обрывая** там, где показания нет. Самое простое решение — **вообще не рисовать соединительную линию**, а рисовать **отрезок шириной в один интервал грануляции**. --- Сейчас диапазон **min–avg–max** отображается тремя точками с вертикальной линией между ними. Акцент только на **avg**, min и max акцентировать не надо. В идеале: яркость вертикальной линии между min–avg → к нулю в min; между avg–max → к нулю в max. --- ### Объединённое решение На каждую точку из **history** — **прямоугольник** шириной в один интервал грануляции и высотой от min до max, акцент на avg. Или то же самое — **крестик** той же ширины и высоты, avg в центре. **Если значения в данных нет — не рисуем ничего.** ## БУР-36 · График. точка — вертикальная полоса min..max Переработать отображение точек на графике. Сейчас точки соединяются линией. Надо: **каждая точка** — вертикальная полоса от **min** до **max**, шириной в **один интервал грануляции**. Акцент на том, что полоса занимает свой временной слот, а не рисуется как точка на линии. --- _Пересекается с **БУР-62** (но там шире описано: разрывы в потоке, акцент на avg, градиент). Делать вместе или свести в одно решение._ # Что сделал 1. На данном этапе решил пойти по пути простого решения, чтобы снизить вероятность ошибок, и сохранить код максимально простым, насколько это было возможно 2. Отрезок строится на основе грануляции - это отрезок основанный на avg значении по Y и шириной равной грануляции по X. 3. От отрезка отходят полосы (шириной в отрезок грануляции) min и max с затуханием в 0 к точкам экстремума <img width="1211" alt="image.png" src="attachments/b39d4227-0df6-4e6c-b75e-a29ff5c330f0"> <img width="1223" alt="image.png" src="attachments/c1a636ad-406f-40d0-bc6d-dac8d1d76163">
475 KiB
474 KiB
APervov added 1 commit 2026-07-05 08:05:23 +00:00
APervov merged commit 378036f4dd into dev 2026-07-05 08:05:36 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: APervov/ui#13