7.3

来源:互联网 发布:电脑磁盘碎片整理软件 编辑:程序博客网 时间:2024/05/06 15:15

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



 

原创粉丝点击