LINUX.ORG.RU

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

 , ,


0

2

Котаны, есть фишка - написал (точнее чуть подкорректировал код из википедии) алгоритм Ву на си. Работает, все ок. Есть проблема. На 45 градусах показывает каку.

Так работает фотошоп: https://dl.dropboxusercontent.com/u/31471800/p2p/Screenshot - 27.11.2014 - 22...
Так работает Ву: https://dl.dropboxusercontent.com/u/31471800/p2p/Screenshot - 27.11.2014 - 22...

Я так смотрю, что фотошоп делает его 3-х точечным, а Ву 2х. В этом основная фишка?

Вот еще примеры линий фотошопа (даже 90градусные оказывается имеют что-то типа «тени» Фишка? Бага? Издержки их алгоритма?): https://dl.dropboxusercontent.com/u/31471800/p2p/778.png

Что скажете? Пробовал гуглить, выдает только топик на RSDN 2009го года, в котором говорят, что есть Ву, жри его, остальное засекречено.

★★
Ответ на: комментарий от abs

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

pef-secure
()
Ответ на: комментарий от abs

А можете такой код запустить:?

    int i;
    for (i = 0; i < 360; i++)
    {
        SmlLine line =
                (SmlLine){(SmlPoint){500,500},
                          (SmlPoint){cos(i * 3.1418 / 180) * 500 + 500,
                                     sin(i * 3.1418 / 180) * 500 + 500}};
        DrawLine(img1, line, SML_COLOUR_WHITE, SML_LINE_ANTIALIASING);
    }

Типы сами поправите.

sambist ★★
() автор топика
Ответ на: комментарий от sambist

Есть маленькая проблемка. Мой код рисует линия только от 0 до Pi/4, в принципе ничего сложного в том чтоб он рисовал весь диапазон нет, просто нужно докодить. Займусь этим на днях.

abs ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.