gpt4 book ai didi

algorithm - 对DDA算法感到困惑,需要一些帮助

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

我需要有关 DDA 算法的帮助,我对在 DDA Algo 上在线找到的教程感到困惑,这是该教程的链接

http://i.thiyagaraaj.com/tutorials/computer-graphics/basic-drawing-techniques/1-dda-line-algorithm

例子:

xa,ya=>(2,2)
xb,yb=>(8,10)
dx=6
dy=8

xincrement=6/8=0.75
yincrement=8/8=1

1) for(k=0;k<8;k++)
xincrement=0.75+0.75=1.50
yincrement=1+1=2
1=>(2,2)

2) for(k=1;k<8;k++)
xincrement=1.50+0.75=2.25
yincrement=2+1=3
2=>(3,3)

现在我想问一下,这行xincrement=0.75+0.75=1.50是怎么来的,理论上是这样写的

“如果斜率大于 1,则在单位 y 间隔 Dy=1 处 x 和 y 的作用,并计算每个连续的 y 值。Dy=1

m= Dy / Dx
m= 1/ ( x2-x1 )
m = 1 / ( xk+1 – xk )

xk+1 = xk + ( 1 / m )

它应该是 xincrement=x1(即 2)+ 0.75 = 2.75

或者我理解错了,谁能教我怎么做?

非常感谢)

最佳答案

这里似乎有点困惑。

首先,我们假设 0 <= slope <= 1。在这种情况下,您在 X 方向上一次前进一个像素。在每个 X 步,您都有一个当前 Y 值。然后,您会计算出“理想”Y 值是更接近您当前的 Y 值,还是更接近下一个更大的 Y 值。如果它更接近较大的 Y 值,则增加当前的 Y 值。措辞略有不同,您可以计算出使用当前 Y 值的误差是否大于半个像素,如果是,则增加 Y 值。

如果斜率 > 1,那么(如您的问题中所述)您交换 X 和 Y 的角色。也就是说,您在 Y 方向上一次前进一个像素,并在每一步确定是否应该增加您的当前 X 值。

负斜率的工作原理几乎相同,只是你是递减而不是递增。

关于algorithm - 对DDA算法感到困惑,需要一些帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1668029/

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