Algorithm to get the coordinates of a straight line

void GetPts(POINT OA,POINT OB,std::list<POINT> &pts)

{

int L=abs(OA.x-OB.x);

int W = abs (OA.y-OB.y);


if(W==0&&L!=0){

for(int i=1;i<L;i++)

{

POINT pt;

if(OA.x<OB.x)

{

  pt.x = i + OA.x;

}else

{

  pt.x = OA.xi;

}

pt.y=OA.y;

pts.push_back(pt);

}

return;

}

if(W!=0&&L!=0)

{

  for(int i=1;i< L; i++)

  {

POINT pt;

if(OA.y<OB.y)

{

  pt.y=(i)*W/L+ OA.y;

}

else

{

 pt.y=OA.y-(i)*W/L;

}

if(OA.x<OB.x)

{

  pt.x = i + OA.x;

}else

{

  pt.x = OA.xi;

}

pts.push_back(pt);

}

  return;

}

if(W!=0&&L==0)

{

  for(int i=1;i<W;i++)

{

POINT pt;

pt.x = OA.x;

if(OA.y>OB.y)

{

pt.y=OA.y-i;

}else{

   pt.y=OA.y+i;

}

pts.push_back(pt);

}

}

}


{{o.name}}
{{m.name}}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324186871&siteId=291194637