吴的抗锯齿算法,垂直线条

时间:2011-04-09 01:17:34

标签: algorithm

我一直在实施Wu的算法,主要是每Xiaolin Wu's algorithm,但是遇到了一些障碍。具体来说,这个算法的位,包含在wiki条目底部的注释中:

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

我认为这意味着只是用绘图(y,x)反转所有调用plot(x,y)的调用,但这样做会产生一些非常特殊的外观(我似乎无法获得截图,因为每一个我尝试的时间,我的OpenGL窗口将空白粘贴到Paint中。)

之前实现过这个的人能给我一些指导吗?我的线条现在看起来有点傻,每个象限只有一半被填满。

1 个答案:

答案 0 :(得分:0)

您不仅要将plot(x,y)plot(y,x)交换,还要交换输入参数x1<->y1x2<->y2。如果你这两个都可以正常工作。后一部分是在文章的代码中完成的,而不是绘图坐标的切换。

背后的原因是您在x范围内逐个像素地步进。如果你的水平范围小于垂直范围,它可能会产生间隙(例如,想象一个完美的垂直线,这将导致它只有一个x值)。

因此,您可以切换输入参数xy,但同时切换输出坐标系(通过在绘图函数中交换xy)。