Алгоритм рисования толстых сглаженных линий - PullRequest
5 голосов
/ 19 марта 2011

Существуют ли "стандартные" алгоритмы для рисования толстых сглаженных линий? Я нашел алгоритм Сяолиня Ву для рисования линий шириной 1px, но еще не нашел расширения для более толстых линий.

Ответы [ 2 ]

3 голосов
/ 19 марта 2011

Неэффективным, грубым и быстрым способом было бы нарисовать линии больше (скажем, в 4 раза), а затем уменьшить их, используя усреднение по весу. Подробности здесь:

Алгоритмы уменьшения масштаба растровых шрифтов

Посмотрите на принятый ответ.

2 голосов
/ 20 марта 2011

Если ваши линии всегда будут прямыми, а вы не смотрите на кривые сглаживания, вы можете использовать трехэтапный подход.

Я не уверен, насколько это будет эффективно в вашей среде, но вы можете нарисовать псевдоним версии с thickness - 2, а затем дважды использовать подход Xiaolin Wu для сглаживания краев.Подход @Francisco P. тоже сработает и может быть действительно предпочтительным.

Так или иначе, псевдонимы должны быть сглажены вдоль внешних краев.Если вы имеете дело с линиями толщиной более одной, вы можете добиться этого, просто нарисовав два сглаженных края и затем заполнив их посередине.

...