Алгоритм Коэна-Сазерленда
Т.е. функции имеет вид
int ObrezLiniya(int x0, int y0, int x1, int y1, int &lx0, int &ly0, int &lx1, int &ly1)
где
/*
* x0, y0, x1, y1 - координаты левого верхнего, правого нижнего окна вывода
* lx0, ly0, lx1, ly1 - координаты начальной, конечной точки прямой
*/
, а она возвращает 1, если линию нужно нарисовать, 0 иначе.
в ходе работы функции координаты прямой могут измениться. Важно чтобы все-таки возвращался флаг рисования