我的 DDA(数字差分分析仪)算法实现代码在绘制斜率小于 45 o的线时效果很好,但在斜率大于 45 o时失败。
对于角度 > 45 o,它的行为就像一条折线
代码
void dda(int x1,int y1,int x2,int y2)
{
float x,y,xinc,yinc,dx,dy;
int k,step;
dx = x2 - x1;
dy = y2 - y1;
step = abs(dx);
xinc = dx / step;
yinc = dy / step;
x = x1;
y = y1;
putpixel(x,y,63);
for(k=1;k<=step;k++)
{
x = x + xinc;
y = y + yinc;
putpixel(x,y,63);
}
}
这是DDA算法的缺点还是我的代码有任何错误,请帮助我找出导致我的程序效率低下的原因。
谢谢