x1,y1,x2,y2 | x3,y3,x4,y4 vertical into horizontal return x1, y3 horizontal into segment var low var high if(y3 <= y4) { low = y3 high = y4 } else { low = y4 high = y3 } // no intersect if(low > y1 && high <y1) { return; } else { // horizontal line intercept of some sort? }