Droite et Distance entre deux points en java

Le but de cet article est d'apprendre comment créer un point avec les coordonnées x et y dans un plan de deux dimensions, puis créer un deuxième point et calculer la distance entre les deux.

1) Créer la classe Point

Pour bien structurer notre programme, on doit éviter la création de plusieurs instances de x et y (x1,x2,..xn-y1,y2,..yn). Java est un langage orienté objet qui a une grande capacité d'abstraction.

public class Point {

int x,y;

public Point(int x, int y){
this.x=x;
this.y=y;
}

public int getX() {
return x;
}

public void setX(int x) {
this.x = x;
}

public int getY() {
return y;
}

public void setY(int y) {
this.y = y;
}
}

2) Créer la classe Droite

Une droite est formée avec au moins deux points P1 et P2, la distance est calculée par la théorème de Pythagore:
théorème de Pythagore
La théorème de Pythagore est appliquée lorsque le triangle est rectangulaire, la formule s'écrit: c² = a² + b². La longueur est alors la racine de c² et calculée en utilisant la méthode Math.sqrt().

public class Droite {

Point p1, p2;

public Droite (Point p1, Point p2){
this.p1=p1;
this.p2=p2;
}

double longueur(){
return p1.distance(p2);
}
}
Maintenant, on va déclarer la méthode distance() dans la classe Point qui permet de retourner la distance entre le point actuel et le point passé comme paramètre:

double distance(Point p){
return Math.sqrt((p.getX()-this.getX()) + (p.getY()-this.getY()));
}

Exemple

public class Main {

public static void main(String[] args) {

Point p1 = new Point(2, 3);
Point p2 = new Point(5, 8);
trait Droite= new Droite(p1, p2);
System.out.println(Droite.longeur());

Point p3 = new Point(7, 3);
System.out.println("distance entre le point("+p1.getX()+", "+p1.getY()+
") et le point("+p2.getX()+", "+p2.getY()+") : "+p1.distance(p3));
}
}
Sortie:

2.8284271247461903
Distance entre le point(2, 3) et le point(5, 8) : 2.23606797749979
Références:
Wikipédia: Droite(mathématique)
Wikipédia: théorème de Pythagore
Documentation Oracle: Méthode Math.sqrt