public class IntersectionDroites2D { /* Type agrege de stockage de coordonnees */ /* reelles en deux dimensions */ static class Coordonnees2D { double x = 0.0; double y = 0.0; }; /* Type agrege de stockage des composantes */ /* reelles d'une droite du plan */ static class Droite2D { double a = 0.0; double b = 0.0; }; /* Calcul de l'intersection entre deux droites */ /* d'équations y = a1*x+b1 et y = a2*x+b2 */ static Coordonnees2D intersection(Droite2D d1, Droite2D d2) { Coordonnees2D inter = new Coordonnees2D(); inter.x = (d2.b-d1.b)/(d1.a-d2.a); inter.y = d1.a*inter.x+d1.b; return inter; } /* Programme principal */ public static void main(String [] args) { Droite2D d1 = new Droite2D(); Droite2D d2 = new Droite2D(); Coordonnees2D inter; Ecran.afficher("SVP, coefficient directeur droite 1 : "); d1.a = Clavier.saisirDouble(); Ecran.afficher("SVP, ordonnée à l'origine droite 1 : "); d1.b = Clavier.saisirDouble(); Ecran.afficher("SVP, coefficient directeur droite 2 : "); d2.a = Clavier.saisirDouble(); Ecran.afficher("SVP, ordonnée à l'origine droite 2 : "); d2.b = Clavier.saisirDouble(); inter = intersection(d1,d2); Ecran.afficherln("Intersection : ( ",inter.x," , ",inter.y," )"); } }