void line (int xl, int yl, int xl1, int yl1)
{
int xz,yz,Px,Py;
float P,Pz;
Px=xl1-xl; // расчет разници х
Py=yl1-yl; // расчет разници у
PutPixel(xl,yl); // начальная точка линии
if ((Px&32767)>=(Py&32767)) //если разница xx>=yy
{
P=Py;P=P/Px; // смещение по у на еденицу х
Pz=yl;
xz=xl; //начальное значения точки х
if(xl1>xl)
{
for (;xz<xl1;)
{xz++;
Pz+=P;
PutPixel (xz,Pz);
}
}
if(xl1<xl)
{
for (;xz>xl1;)
{xz--;
Pz-=P;
PutPixel (xz,Pz);
}
}
}
else //если разница yy>xx
{
P=Px;P=P/Py; // смещение по х на еденицу у
Pz=xl;
yz=yl; //начальное значения точки у
if(yl1>yl)
{
for (;yz<yl1;)
{yz++;
Pz+=P;
PutPixel (Pz,yz);
}
}
if(yl1<yl)
{
for (;yz>yl1;)
{yz--;
Pz-=P;
PutPixel (Pz,yz);
}
}
}
};