public class Droite { public double a, b, c; public String toString(){ return a + "x + " + b + "y = " + c; } /* * Represent a line in the space with the equation ax + by = c * @param a ax * @param b by * @param c c */ Droite(double a, double b, double c){ this.a = a; this.b = b; this.c = c; } /* * Check if the line is horizontal * @return true if the line is horizontal * @return false if the line is not horizontal */ public boolean isHorizontal(){ if(a == 0) return true; return false; } /* * Find the intersection by 2 lines * @param other the other line you should find the intersection with * @return Point The Point of the intersection * @return Null if the lines are not intersecting * @return Null if the lines are the sames */ public Point intersection(Droite other){ if(a * other.b - b * other.a == 0) return null; return new Point((other.b*c - b*other.c)/(a*other.b + b * other.a), (other.c - other.a*((other.b*c - b*other.c)/(a*other.b + b * other.a)))/other.b ); } /* * Create a new line with the two points given * @param p1 the first point * @param p2 the second point * @return Droite the line that is between the given points */ public static Droite create(Point p1, Point p2){ System.out.println(p1 + "; " + p2); Point directeur = new Point(p2.getX() - p1.getX(), p2.getY() - p2.getY()); System.out.println(directeur); double a = -directeur.getY(); double b = directeur.getX(); return new Droite(a, b, a*p1.getX() + b*p1.getY()); } }