Liang–Barsky algorithm


In computer graphics, the Liang–Barsky algorithm is a line clipping algorithm. The Liang–Barsky algorithm uses the parametric equation of a line and inequalities describing the range of the clipping window to determine the intersections between the line and the clip window. With these intersections it knows which portion of the line should be drawn. This algorithm is significantly more efficient than Cohen–Sutherland. The idea of the Liang–Barsky clipping algorithm is to do as much testing as possible before computing line intersections.
Consider first the usual parametric form of a straight line:
A point is in the clip window, if
and
which can be expressed as the 4 inequalities
where
To compute the final line segment:
  1. A line parallel to a clipping window edge has for that boundary.
  2. If for that,, then the line is completely outside and can be eliminated.
  3. When, the line proceeds outside to inside the clip window, and when, the line proceeds inside to outside.
  4. For nonzero, gives the intersection point.
  5. For each line, calculate and. For, look at boundaries for which . Take to be the largest among. For, look at boundaries for which . Take to be the minimum of. If, the line is outside and therefore rejected.

// Liang--Barsky line-clipping algorithm
  1. include
  2. include
  3. include
using namespace std;
// this function gives the maximum
float maxi
// this function gives the minimum
float mini
void liang_barsky_clipper
int main