ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Понедельник
25 января
/1052164
Топик полностью
RxTx (14.11.2020 11:19, просмотров: 157) в ответ на Вопрос скорее про математику. Есть необходимость выводить на LCD кривую, визуализирующую состояние процесса. Дискретность по горизонтали - один пиксель. Пока просто соединяю соседние точки отрезками. Получается почти приемлемо, но вид кривой напоминает шрифты без сглаживания(antialiasing). Возможно ли аналогичную технику (используемую для шрифтов) использовать при рисовании произвольной кривой? Непринципиально, но: сейчас использую Lichee PI Zero, LCD 800x480, - автор: Rainman62
Называется микроконтроллеры проходят итерацию пройденную на ПК в 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

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