ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
24 ноября
1052164 Топик полностью
RxTx (14.11.2020 11:19, просмотров: 456) ответил Rainman62 на Вопрос скорее про математику. Есть необходимость выводить на LCD кривую, визуализирующую состояние процесса. Дискретность по горизонтали - один пиксель. Пока просто соединяю соседние точки отрезками. Получается почти приемлемо, но вид кривой напоминает шрифты без сглаживания(antialiasing). Возможно ли аналогичную технику (используемую для шрифтов) использовать при рисовании произвольной кривой? Непринципиально, но: сейчас использую Lichee PI Zero, LCD 800x480,
Называется микроконтроллеры проходят итерацию пройденную на ПК в 80е-90е... :))) Вопрос не про математику, а про используемую тобой uGFX. Пиксельные "ступеньки" это aliasing. Техника сглаживания в графике называется antialiasing (в пограничных случаях это могут назвать pixel smoothing или subpixel rendering). 

Ищем как рисовать линии со сглаживанием в uGFX?

Поиск среди настроченых #define не показывает ничего:

https://wiki.ugfx.io/index.php/Configuration

Ищем по документации слово aliasing, есть но это относится к рендеру шрифтов.

Читаем про https://wiki.ugfx.io/index.php/Drawing

и видим что упоминаний никаких, хотя картиночки-то вордовые нарисованы с антиалиасингом.

Вывод - шишка. Нет антиалисинга в этой либе.


Как фейкнуть? (ресурсоемким способом). Отрисовывать графику в буфер больший по x,y в 2 или 4 раза.

При выводе на экран усреднять соседние пиксели (часто в либах уже написана downscale с усреднением).


Остальные способы сложнее. Например самому программно рисовать в свой bitmap/buffer (если опять же, эта uGFX позволяет)

и выводить (блиттить) на экран этот буфер/битмап.

Использовать лучше всего AGG https://en.wikipedia.org/wiki/Anti-Grain_Geometry

Спасибо, князь. Вы настоящий дворянин. И программист.