Алгоритм рисования сглаженной линии

Рейтинг: 2Ответов: 1Опубликовано: 22.09.2014

Здравствуйте!

Такая проблема:
1) нужно попиксельно нарисовать линию;
2) толщина линии должна задаваться параметром;
3) линия должна быть сглаженная;
4) алгоритм рисования должен быть очень быстрым, прямо таки сглаживать нужно "на лету"(без мультисемплирования и вообще желательно без буфферизации).

Функция рисования пикселя: SetPix(int x, int y, int color); color задается так: 0xRRGGBBAA;.
Написал свой алгоритм, он рисует линию разной толщины. Толщина разная, но на концах линия получается обрезанной:

alt text

Подскажите алгоритм, исходники, что позволяют добиться желаемого результата)

Ответы

▲ 6Принят

Это называется алгоритмом Брезенхема.

Но в вашем случае требуется модифицированный алгоритм Брезенхема, меняющий интенсивность окрашивания точки, - иногда называется алгоритм Ву Сяолиня.

Примеры обоих алгоритмов в статье на Хабре.