Информация об изменениях

Сообщение Re[9]: чем заменить задачу по развороту списка от 07.10.2020 4:38

Изменено 07.10.2020 4:40 vsb

Re[9]: чем заменить задачу по развороту списка
Здравствуйте, Тёмчик, Вы писали:

CC>> результат получается с прорехами, когда итерацию делают не по dest а по src.


Тё>Логичный результат. Если из src считать dst- будут "прорехи", но если из dst считать src- будут "складки". Очевидно, можно проецирующую координату оставить в double без округления, и копировать субпиксельно, т.е. раскидывать на "пятно" из покрытых координатой пикселов. Либо если reverse- брать значение пиксела с покрытого пятна из нескольких пикселов, в пропорциях покрытия. Либо почитать про билинейную фильтрацию.


Для практического применения правильный подход это итерироваться по src, а в dst складывать не пиксели, а списки коржетей (цвет, процент заполнения пикселей). То бишь берём пиксель как квадратик из src, поворачиваем его на dst и смотрим на какие квадратики он ложится и процент того, сколько этого пикселя попало на какой пиксель. А после этого уже считаем конечный dst, смешивая цвета (и там формула сложней, чем просто сложить r g b).

А если делать ещё правильней, то, возможно, надо учитывать особенности матрицы у пользователя: монитор ведь не квадратики рисует, а каждый пиксель рисуется несколькими разноцветными прямоугольниками.
Re[9]: чем заменить задачу по развороту списка
Здравствуйте, Тёмчик, Вы писали:

CC>> результат получается с прорехами, когда итерацию делают не по dest а по src.


Тё>Логичный результат. Если из src считать dst- будут "прорехи", но если из dst считать src- будут "складки". Очевидно, можно проецирующую координату оставить в double без округления, и копировать субпиксельно, т.е. раскидывать на "пятно" из покрытых координатой пикселов. Либо если reverse- брать значение пиксела с покрытого пятна из нескольких пикселов, в пропорциях покрытия. Либо почитать про билинейную фильтрацию.


Для практического применения правильный подход это итерироваться по src, а в матрицу dst складывать не пиксели, а списки коржетей (цвет, процент заполнения пикселя). То бишь берём пиксель как квадратик из src, поворачиваем его на dst и смотрим на какие квадратики он ложится и процент того, сколько этого пикселя попало на какой пиксель. А после этого уже считаем конечный dst, смешивая цвета (и там формула сложней, чем просто сложить r g b).

А если делать ещё правильней, то, возможно, надо учитывать особенности матрицы у пользователя: монитор ведь не квадратики рисует, а каждый пиксель рисуется несколькими разноцветными прямоугольниками.