绘制直线:
1.DDA算法
x,y分别加上一个小增量e*Xi,e*Yi
Xi=Xi+/-e*dx;
Yi=Yi+/-e*dy;
令e=1/(max(|dx|,|dy|));
当0<=k<=1时
max(dx,dy)=|dx|;
Xi=Xi+/-1;
Yi=Yi+/-k;
当k>1时
max(dx,dy)=|dy|;
Xi=Xi+/-1/k;
Yi=Yi+/-1;
注意:在像素中没有半个像素点的,要进行四舍五入,加上0.5取整即可
代码:
void DDALine(int x0, int y0, int x1, int y1, int color)
{
int dx, dy, espl, k;
float x, y, xIncre, yIncre;
dx = x1 - x0;
dy = y1 - y0;
x = x0;
y = y0;
if (abs(dx) > abs(dy)) espl = abs(dx);
else espl = abs(dy);
xIncre = (float)dx / (f