我一直在实施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中。)
之前实现过这个的人能给我一些指导吗?我的线条现在看起来有点傻,每个象限只有一半被填满。
答案 0 :(得分:0)
您不仅要将plot(x,y)
与plot(y,x)
交换,还要交换输入参数x1<->y1
和x2<->y2
。如果你这两个都可以正常工作。后一部分是在文章的代码中完成的,而不是绘图坐标的切换。
背后的原因是您在x
范围内逐个像素地步进。如果你的水平范围小于垂直范围,它可能会产生间隙(例如,想象一个完美的垂直线,这将导致它只有一个x值)。
因此,您可以切换输入参数x
和y
,但同时切换输出坐标系(通过在绘图函数中交换x
和y
)。