1.DDA:在一个坐标轴上以单位间隔对线段取样,从而确定另一个坐标轴上最靠近路线的整数点。
如果斜率m<=1,则以单位X间隔取样,逐步计算y值 y(k+1)=y(k)+m
如果斜率m>1,则以单位Y间隔取样,逐步计算X值 x(k+1)=x(k)+1/m
这个算法可以概括为以下过程:首先输入两个端点的坐标,计算端点之间的水平和垂直差值分别赋值给dx,dy
他们绝对值大的作为确定参数K的值。在这个绝对值大的坐标轴上进行间隔取样。
#include<iostream>
#include<math.h>
using namespace std;
inline int round(const float a)
{
return int (a+0.5);
}
void lineDDA(int x0,int y0,int xend,int yend)
{
int dx=xend-x0;
int dy=yend-y0;
int k;