对称DDA是什么意思?

时间:2012-08-17 17:41:24

标签: algorithm graphics line-drawing dda

我读过DDA。但我刚刚遇到了术语对称DDA 。它是什么 ?它与 DDA 有什么不同?

1 个答案:

答案 0 :(得分:5)

DDA(数字微分分析仪)算法用于找出任意给定两点之间的线性点(即直线)。现在,由于这是在数字计算机上完成的 - 速度是一个重要因素。

直线的等式由m =Δx/Δyeq(i)给出,其中Δx= x(2)-x(1)& Δy= y(2)-y(1),现在使用这个方程我们可以计算出在线上的连续点。但是这是光栅图形的离散世界 - 所以我们需要积分坐标。

在简单的DDA中,eq(i)被转换为m =eΔx/eΔy,其中 e ,称之为增量因子,是正实数。因为在分子和分母中加入相同的数字不会改变任何东西 - 但如果选择得当 - 它可以帮助我们生成离散点,从而减少必须舍入结果点的过载。

基本上我们需要做的是:从起始点开始,将坐标增加一个固定的小量,每次我们有一个新的点朝着终点前进。

在简单DDA中, e 被选为1 / max(|Δx|,|Δy|),使得其中一个坐标是整数,只有另一个坐标必须被舍入。即P(i + 1)= P(i)+(1,Round(e *Δy))这里一个坐标增加1而另一个坐标增加e *Δy

  

在对称DDA中选择 e 使得虽然结果点的坐标都必须四舍五入,它可以非常有效地完成,因此很快。

具体地, e 被选择为1/2 ^ n其中2 ^(n-1)<= max(|Δx|,|Δy|)&lt; 2 ^ N。换句话说,线的长度被取为2 ^ n对齐。两个坐标的增量是e *Δx和e *Δy。通过适当选择起始坐标的初始分数部分:这使得点作为混合分数生成,其分数部分处于<强>循环系列,即它们在小长度上重复。因此,可以根据两个固定长度的查找表轻松舍入结果坐标,每个坐标对应一个。

请参考http://w3.msi.vxu.se/~gsu/DAB726-Ht06/Symm-DDA.pdf作为示例 注意结果坐标的小数部分中的循环重复。