来自维基百科,
线性 DDA 首先计算另一个单位增量的dy
或dx
中的较小者。然后在一个坐标中以单位间隔对线进行采样,并为另一个坐标确定最接近线路径的相应整数值。
考虑一条斜率为正的线,如果斜率小于或等于 1,我们以单位 x 间隔 (dx=1( [...]
对于斜率大于 1 的线,我们反转 x 和 y 的作用,即我们在 dy=1 时采样 [...]
执行类似的计算以确定沿负斜率线的像素位置
- 斜率(正或负(如何影响算法?
- 为什么梯度小于或等于 1 很重要?
-
如果你的梯度是负的(在其中一个维度上(,并且你以单位增量沿着这个方向行走,你必须调整你的循环来倒数。
-
如果您沿着错误的维度(以单位增量(行走,则最终会在线上出现间隙。 例如,如果您有斜率 2 并且沿 x 方向行走,则只有每隔一行将包含一个像素。