struct Point
{
float x;
float y;
};
Point pointA,pointB; //DDA
pointA.x=200;
pointA.y=250;
pointB.x=100;
pointB.y=200;
float x,y;
int num=0;
float A=pointB.x-pointA.x;
float B=pointB.y-pointA.y;
float k=B/A;
HDC hDC;
hDC=::GetDC(m_hWnd);//通过窗口句柄得到该窗口的设备场境句柄
if(fabs(k)>=1)
{
x=pointA.x;
y=pointA.y;
num=x;
if(A>=0&&B>=0)
for(;y<=pointB.y;)
{
SetPixel(hDC,num,y,RGB(0,0,255));
x=x+1/k;
y++;
num=x;
}
else
if(A<0&&B<0)
for(;y>=pointB.y;)
{
SetPixel(hDC,num,y,RGB(0,0,255));
x=x-1/k;
y--;
num=x;
}
else
if(A<0&&B>=0)
for(;y<=pointB.y;)
{
SetPixel(hDC,num,y,RGB(0,0,255));
x=x-1/k;
y++;
num=x;
}
else
for(;y>=pointB.y;)
{
SetPixel(hDC,num,y,RGB(0,0,255));
x=x+1/k;
y--;
num=x;
}
}
else
{
x=pointA.x;
y=pointA.y;
num=y;
if(A>=0&&B>=0)
for(;x<=pointB.x;)
{
SetPixel(hDC,x,num,RGB(0,0,255));
x++;
y=y+k;
num=y;
}
else
if(A<0&&B<0)
for(;x>=pointB.x;)
{
SetPixel(hDC,num,y,RGB(0,0,255));
x--;
y=y-k;
num=x;
}
else
if(A<0&&B>=0)
for(;x>=pointB.x;)
{
SetPixel(hDC,num,y,RGB(0,0,255));
x--;
y=y+k;
num=x;
}
else
for(;x<=pointB.x;)
{
SetPixel(hDC,num,y,RGB(0,0,255));
x++;
y=y-k;
num=x;
}
}