gpt4 book ai didi

c - DDA 算法并未为所有坐标值绘制直线

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:34:01 27 4
gpt4 key购买 nike

我的 DDA(Digital Differential Analyzer)算法实现代码适用于绘制斜率小于 45o 的线,但在线斜率超过 45<支持>o。

对于 > 45o

的角度,它的行为就像一条虚线

代码

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算法的缺点还是我的代码有什么问题,请帮我找出导致我的程序效率低下的原因。 谢谢

最佳答案

如果要绘制斜率 > 1 的线,则必须迭代 y 值。这是很自然的,因为 y 方向上的步数比 x 方向上的步数多。

关于c - DDA 算法并未为所有坐标值绘制直线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16894632/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com