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