roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 04:31

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: anti-aliasing на TFT дисплеях?
СообщениеДобавлено: 08 апр 2016, 11:21 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
игрался с дисплейчиком китайским, 320х240
всё вроде бы ничего, но отсутствие сглаживания просто убивает.

и если шрифты ещё в принципе можно сделать в виде картинок и с карты памяти подхватывать их, эдакий костыль.
то с графикой полный швах.
Вложение:
Безымянный.jpg
Безымянный.jpg [ 16.39 КиБ | Просмотров: 2147 ]


может кто встречал библиотечки которые позволяют использовать сглаживание?

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: anti-aliasing на TFT дисплеях?
СообщениеДобавлено: 08 апр 2016, 12:58 
Не в сети

Зарегистрирован: 26 мар 2008, 12:45
Сообщения: 326
федор Анатольевич
Бригадир телепатов сейчас не может Вам ответить, а нам сирым трудно проникнуть в суть всей технической проблемы дистанционно, может чуть расширите суть проблемы.
Спасибо, младший ученик Бригадира телепатов Loox


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: anti-aliasing на TFT дисплеях?
СообщениеДобавлено: 08 апр 2016, 15:08 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
на картинке в верхнем посте предельно чётко проиллюстрирована суть проблемы
верхняя линия обычная, нижняя с сглаживанием.
может кто-то сталкивался с библиотеками которые позволяют реализовать сглаживание?

если ты хоть раз пробовал рисовать что-то на графическом экране то ты с этим сталкивался.
вот ярчайший пример отсутствия сглаживания:
Изображение
Изображение

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

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: anti-aliasing на TFT дисплеях?
СообщениеДобавлено: 08 апр 2016, 15:27 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
какая ещё библиотека? :) в гугле "алгоритм сглаживания", "antialiasing line", "antialiasing curve",... выбирается из кучи реализаций понравившаяся и в имеющейся библиотеке заменяется/добавляется.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: anti-aliasing на TFT дисплеях?
СообщениеДобавлено: 08 апр 2016, 15:54 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
вот я и спрашиваю, вдруг кто-то уже это реализовал =)

есть некий http://pd4ml.com/pixelmeister
и к нему бибилиотечка с сглаживанием, а заодно он умеет конвертировать шрифты со сглаживанием :)
правда в нём нет поддержки того экрана который мне давали попользоваться, зато есть другие недорогие)
вот такой вроде поддерживается aliexpress.com/item/Wholesale-1PC-2-2-Inch-240-320-Dots-SPI-TFT-LCD-Serial-Port-Module-Display-ILI9341/1959463785.html
наверно куплю такой экранчик, проще купить подходящий чем в исходниках разбираться)))

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: anti-aliasing на TFT дисплеях?
СообщениеДобавлено: 08 апр 2016, 17:08 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
давно уже можно было дёрнуть реализацию хоть из второй библиотеки и не ждать с моря погоды.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: anti-aliasing на TFT дисплеях?
СообщениеДобавлено: 09 апр 2016, 00:12 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
там ни одного комментария даже :(
Код:
void PixelsAntialiased::drawLineAntialiased(int16_t x1, int16_t y1, int16_t x2, int16_t y2) {

    boolean steep = (y2 > y1 ? y2 - y1 : y1 - y2) > (x2 > x1 ? x2 - x1 : x1 - x2);
    if (steep) {
        int16_t tmp = x1;
        x1 = y1;
        y1 = tmp;
        tmp = x2;
        x2 = y2;
        y2 = tmp;
    }
    if (x1 > x2) {
        int16_t tmp = x1;
        x1 = x2;
        x2 = tmp;
        tmp = y1;
        y1 = y2;
        y2 = tmp;
    }
    int16_t deltax = x2 - x1;
    int16_t deltay = y2 - y1;
    double gradient = 1.0 * deltay / deltax;

    int16_t xend = x1; // round(x1);
    double yend = y1 + gradient * (xend - x1);
    double xgap = rfpart(x1 + 0.5);
    int16_t xpxl1 = xend;
    int16_t ypxl1 = ipart(yend);
    putColor(xpxl1, ypxl1, steep, rfpart(yend)*xgap);
    putColor(xpxl1, ypxl1 + 1, steep, fpart(yend)*xgap);
    double intery = yend + gradient;

    xend = x2; // round(x2);
    yend = y2 + gradient * (xend - x2);
    xgap = rfpart(x2 + 0.5);
    int16_t xpxl2 = xend;
    int16_t ypxl2 = ipart(yend);
    putColor(xpxl2, ypxl2, steep, rfpart(yend)*xgap);
    putColor(xpxl2, ypxl2 + 1, steep, fpart(yend)*xgap);

    for ( int16_t x = xpxl1 + 1; x < xpxl2 - 1; x++ ) {
          putColor(x, ipart(intery), steep, rfpart(intery));
          putColor(x, ipart(intery) + 1, steep, fpart(intery));
          intery += gradient;
    }
}

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: anti-aliasing на TFT дисплеях?
СообщениеДобавлено: 09 апр 2016, 04:24 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
абзац. коментарии для пары строк простенького кода, в котором максимум нужно понять, что параметры это координаты начальной и конечной точки, а в коде ф-и максимум нужно понять где вызывается ф-я отрисовки точки или записи цвета в какой буфер? ну хочется теории отрисовки, так изучается теория https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%92%D1%83, http://members.chello.at/easyfilter/bresenham.pdf и т.д.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO