Adloun

programmation Java (école d'ingénieur) · Chapitre 7 · Application directe du cours

Cercles et points

Classes et objets · niveau 2

Énoncé

Reprendre une classe Point munie d'un constructeur et d'une méthode distance(Point p). Écrire une classe Cercle dont les attributs sont un point centre et un réel rayon, avec :

  • une méthode contient(Point p) qui dit si p est dans le disque (bord compris) ;
  • une méthode intersecte(Cercle c) qui dit si les deux disques ont au moins un point commun.

Tester avec le cercle de centre et de rayon , les points et , et les cercles de centre et de rayons et .

Corrigé

Un cercle contient un autre objet : son centre. Pour tester qu'un point est dans le disque, on compare sa distance au centre au rayon ; deux disques se rencontrent si la distance de leurs centres ne dépasse pas la somme de leurs rayons.


class Point {
    double x, y;

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

    double distance(Point p) {
        double dx = x - p.x, dy = y - p.y;
        return Math.sqrt(dx * dx + dy * dy);
    }
}

class Cercle {
    Point centre;
    double rayon;

    Cercle(Point centre, double rayon) {
        this.centre = centre;
        this.rayon = rayon;
    }

    boolean contient(Point p) {
        return centre.distance(p) <= rayon;
    }

    boolean intersecte(Cercle c) {
        return centre.distance(c.centre) <= rayon + c.rayon;
    }
}

public class Ex5Cercle {
    public static void main(String[] args) {
        Cercle c1 = new Cercle(new Point(0, 0), 5);
        Cercle c2 = new Cercle(new Point(8, 0), 2);
        Cercle c3 = new Cercle(new Point(8, 0), 4);
        System.out.println(c1.contient(new Point(3, 4)));
        System.out.println(c1.contient(new Point(4, 4)));
        System.out.println(c1.intersecte(c2) + " " + c1.intersecte(c3));
    }
}

true
false
false true

Le point est à distance du centre, donc sur le bord ; est à distance , donc dehors. Les centres sont à distance : , les deux premiers disques sont disjoints ; , les deux autres se rencontrent. Remarquer l'expression centre.distance(c.centre) : on appelle une méthode de l'objet centre, en lui passant le centre de l'autre cercle.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →