LineSegment: segIntersection
private LSPoint segIntersection(LineSegment ls) {
double d1 = (x1 * y2) - (x2 * y1);
double d2 = (x3 * y4) - (x4 * y3);
double d3 = ((x1 - x2) * (y3 - y4)) - ((x3 - x4) * (y1 - y2));
int x = (int) (((d1 * (x3 - x4)) - (d2 * (x1 - x2))) / d3);
int y = (int) (((d1 * (y3 - y4)) - (d2 * (y1 - y2))) / d3);