Topic 7.3 Given two lines on a Cartesian plane, determine whether the two lines would intersect.
注意:考虑边界条件
方法:
1) If two lines are the same (same slope and y-intercept), they are considered to intersect.
2) If two lines are not parallel, then they intersect. Just check the slopes.
3) Don’t assume that the slope and y-intercept are integers. Understand limitations of floating point representations. Never check for equality with ==, but check if the difference is less than an epsilon value.
public class Line {
static double epsilon = 0.000001;
public double slope;
public double y_intercept;
public Line(double s, double y) {
slope = s;
y_intercept = y;
}
public boolean intersect(Line line2) {//考虑完全重合的边界条件
return Math.abs(slope - line2.slope) > epsilon || Math.abs(y_intercept - line2.y_intercept) < epsilon;
}
public static void main(String[] args) {
Line line1 = new Line(5, 9);
Line line2 = new Line(5, 7);
System.out.println(line1.intersect(line2));
}
}
//结果
false