if (this.isVertical() && l2.isVertical()) {
return null;
} else if (this.isVertical()) {
double y = l2.getY(this.b);
return new Coordinate2D(this.b, y);
} else if (l2.isVertical()) {
double y = this.getY(l2.b);
return new Coordinate2D(l2.b, y);
} else if (k1 == k2) {
return null;// 平行
} else if (k1 == 0) {
double x = l2.getX(this.b);
return new Coordinate2D(x, this.b);
} else if (k2 == 0) {
double x = this.getX(l2.b);
return new Coordinate2D(x, l2.b);
}
double x = (b1 - b2) / (k2 - k1);
double y = this.getY(x);
return new Coordinate2D(x, y);
}