Функции рисования 2d графики (библиотеки vectors и buf2d)

Discussing libraries simplifying applications development
  • В каком сейчас состоянии функции дизеринга?
    Что-нибудь изменилось с того момента viewtopic.php?f=24&t=1319&start=75#p50610
    Или этими функциями по-прежнему нельзя полноценно пользоваться?
  • 0CodErr wrote:В каком сейчас состоянии функции дизеринга?
    Я вроде забил тогда, даже и не помню уже.
  • Кто-то будет допиливать дизеринг?
    Почти 5 лет прошло с того момента http://board.kolibrios.org/viewtopic.php?p=50610#p50610
    Зачем тогда было добавлять в библиотеку заведомо проблемный код?
  • 0CodErr wrote:Кто-то будет допиливать дизеринг?
    ...
    Зачем тогда было добавлять в библиотеку заведомо проблемный код?
    Дело в том что я не автор данного кода, потому что-бы допилить нужно вникнуть в алгоритм. Когда его добавлял в библиотеку то про проблемы не знал.

    Если вдруг кому-то очень нужен алгоритм дизеринга с гарантией от зависаний, то можно создать буфер немного большего размера по высоте (где-то на 1 или 2 пикселя точно не помню), а потом в программе уменьшить этот размер, что-бы не было залезаний за пределы выделенной памяти. Но такой метод борьбы с зависаньями не красивый, потому в библиотеку я его сунуть не буду.
  • IgorA wrote:
    0CodErr wrote:Кто-то будет допиливать дизеринг?
    ...
    Зачем тогда было добавлять в библиотеку заведомо проблемный код?
    Дело в том что я не автор данного кода, потому что-бы допилить нужно вникнуть в алгоритм. Когда его добавлял в библиотеку то про проблемы не знал.

    Если вдруг кому-то очень нужен алгоритм дизеринга с гарантией от зависаний, то можно создать буфер немного большего размера по высоте (где-то на 1 или 2 пикселя точно не помню), а потом в программе уменьшить этот размер, что-бы не было залезаний за пределы выделенной памяти. Но такой метод борьбы с зависаньями не красивый, потому в библиотеку я его сунуть не буду.
    Я те так скажу.

    Проектировщики всех времен и народов берут двойной запас по резервам.
    Так что этот метод работает.

    Для Айти я бы предложил точно рассчитанный запас на худший случай (+1 Сигма) - и это точно будет красиво.
  • IgorA wrote:Когда его добавлял в библиотеку то про проблемы не знал.
    Обманывать не хорошо!
    IgorA wrote:Интересные алгоритмы, когда разгребусь с работой возможно добавлю эти функции в buf2d.
    0CodErr wrote:На некоторых изображениях тот фильтр вылетает. Пример такого изображения в архиве.
    IgorA wrote:...возможно добавлю эти функции в buf2d.
    Я думаю, они больше пригодятся в libimg. Например при конвертировании в монохромное изображение. Полученная картинка будет более информативной.
    IgorA wrote:rev 3105
    добавил 3 алгоритма в библиотеку buf2d
    Siemargl wrote:Для Айти я бы предложил точно рассчитанный запас на худший случай (+1 Сигма) - и это точно будет красиво.
    В данном случае — это из пушки по воробьям. Алгоритм просто "немного" кривой: не учитывается, что память — ресурс ограниченный.
    Один из вариантов я предлагал 4,5 года назад вон там http://board.kolibrios.org/viewtopic.php?p=51925#p51925
  • Обманывать не хорошо!
    IgorA писал(а):
    Интересные алгоритмы, когда разгребусь с работой возможно добавлю эти функции в buf2d.
    Не пойму где обман? :?: Там же не написано что я досконально изучу работу самих алгоритмов, там просто сказано что в свободное от работы время добавлю эти функции в библиотеку.
  • IgorA, ты добавил код проигнорировав моё сообщение о вылете. А теперь смеешь утверждать, что не знал об этом. Или у тебя "чукча не читатель, чукча писатель" :mrgreen:
  • Функция заливки сначала рисует первую точку, а уже потом проверяет, а не граница ли это. Если не отпускать кнопку мыши, то можно и рисовать на границах цветом заливки.
    Надо бы наоборот, сначала проверять, а не граница ли это, и уже потом рисовать.
    Attachments
    Downloaded 192 times
  • From http://forum.cantorsys.com/viewtopic.php?pid=949#p949:

    ▲К сожалению, есть некоторые проблемы со сглаженными линиями в библиотеке Buf2D

    Одна из проблем в том, что некоторые линии, с углом наклона примерно 45 градусов, рисуются неправильным цветом, нецветные, тёмные, на чёрном фоне их даже незаметно, но заметно "незакрашенное" место(просвет), там, где должна была рисоваться линия.
    Spiral_buf2d_incorrect.png
    Spiral_buf2d_incorrect.png (534.7 KiB)
    Viewed 4172 times
    Иногда такие линии рисуются только частично не на всю длину, либо их середина не прорисовывается.
    Очень похоже, что это баг в библиотеке Buf2D, потому что код, рисующий обычные линии работает верно:

    Code: Select all

    buf2d_line(Buf2DBuffer, X1, Y1, X2, Y2, Color);
    проблема только со сглаженными линиями:

    Code: Select all

    buf2d_line_sm(Buf2DBuffer, X1, Y1, X2, Y2, Color);
    
    Горизонтальные сглаженные линии в Buf2D рисуются толщиной в 1 пиксель, а вертикальные 2 пикселя.
    Тут, по логике, надо в обоих случаях рисовать одинаково: либо и там, и там — 1 пиксель, либо и там, и там — 2 пикселя
    Даже, наверное, правильнее именно 1 пиксель, так же, как рисуются и линии под углом 45 градусов.

    -------------
    И, кстати, некоторая проблема с цветом имеется при выводе шрифта.
    в приложении "Файловый навигатор" с помощью функции buf2d_draw_text: интенсивность правильного цвета и выводимого через Buf2D отличается, хотя и очень незначительно(например, вместо RGB(253, 253, 253) выводится RGB(252, 252, 252)).
    Сравнивать правильность можно с цветом в файле шрифта FNT.PNG — по сути это чёрный($00000000) текст на белом($00FFFFFF) фоне.
    Из хаоса в космос
  • Leency wrote:К сожалению, есть некоторые проблемы со сглаженными линиями в библиотеке Buf2D
    ...
    Горизонтальные сглаженные линии в Buf2D рисуются толщиной в 1 пиксель, а вертикальные 2 пикселя.
    Исправил в рев #9520 , теперь должно работать правильно, вертикальные линии тоже стали 1 пиксель.
    Leency wrote:И, кстати, некоторая проблема с цветом имеется при выводе шрифта.
    в приложении "Файловый навигатор" с помощью функции buf2d_draw_text: интенсивность правильного цвета и выводимого через Buf2D отличается, хотя и очень незначительно(например, вместо RGB(253, 253, 253) выводится RGB(252, 252, 252)).
    Исправил в рев #9570
  • Who is online

    Users browsing this forum: No registered users and 6 guests