Алгоритм сглаживания У, вертикальные линии - PullRequest
0 голосов
/ 09 апреля 2011

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

If at the beginning of the routine abs(dx) < abs(dy) is true, 
then all plotting should be done with x and y reversed.

Я думал, что это означало просто обратить все вызовы plot (x, y) с plot(у, х), но это привело к появлению очень необычно выглядящих линий (я не могу получить скриншот, потому что каждый раз, когда я пытаюсь, мое окно OpenGL вставляется пустым в Paint.)реализовал это, прежде чем дать мне немного руководства?Мои строки выглядят немного глупо сейчас, когда заполнена только половина каждого квадранта.

1 Ответ

0 голосов
/ 09 апреля 2011

Вы должны не только поменять plot(x,y) на plot(y,x), но и поменять входные параметры x1<->y1 и x2<->y2. Если вы сделаете оба, все будет работать правильно. Последняя часть сделана в коде в статье, но не в переключателе координат графика.

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

Поэтому вы переключаете входные параметры x и y, но в то же время выходную систему координат (путем обмена x и y в функции построения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...