:: Enseignements :: Master :: M1 :: 2015-2016 :: Programmation Orientée Objet - Design Patterns ::
[LOGO]

Dessinons !


Le but de ce TD est de voir dans quel cas on crée des hierarchie d'objets et d'avoir une première introduction à la POO.

Exercice 1 - Etudes techniques librairie Canvas

Objectif: découvrir la "lib" Canvas et savoir utiliser les principales fonctions.
CanvasArea.java

Exercice 2 - Dessins des lignes

On souhaite prendre en paramètre du programme un fichier simple contenant la description de diffèrentes figures, pour l'instant on supposera que le fichier ne contient que des lignes.
Le programme doit lire le fichier, stocker l'ensemble des figures dans une liste puis afficher celles-ci sur l'écran.
Le format d'une ligne est le suivant : "line x0 y0 x1 y1".
Exemple de fichier
				line 0 0 100 100
				line 0 50 100 50
			

On peut lire un fichier ligne à ligne en utilisant le code suivant:
       Path path = Paths.get("figures.txt");
       try(Stream<String> lines = Files.lines(path)) {
         lines.forEach(line -> System.out.println(line));
       }
     
Pour décomposer une ligne en "mots" on peut utiliser String.split et Integer.parseInt comme ceci:
       String[] tokens = text.split(" ");
       int x1 = Integer.parseInt(tokens[1]);
       int y1 = Integer.parseInt(tokens[2]);
       int x2 = Integer.parseInt(tokens[3]);
       int y2 = Integer.parseInt(tokens[4]);
     
  • Ecrire le code qui prend un fichier en tant que premier argument de la ligne de commande, qui lit celui-ci et stocke l'ensemble des lignes dans une liste.
  • Puis, afficher la liste des lignes précédemment obtenues sur l'écran.

Exercice 3 - Et des ellipses ...

On souhaite modifier le programme précédent pour traiter les fichiers contenant à la fois des lignes et des ellipses.

Exercice 4 - Un peu de selection

On souhaite afficher sur la console (au moins dans un premier temps) la figure la plus proche de l'endroit où l'utilisateur a cliqué.
Pour que les choses soit simples, la figure la plus proche est définie comme étant la figure qui a son centre à la distance la plus courte par rapport aux coordonées de la souris.
Note: la distance entre deux points se calcul avec pythagore !
Note 2: il n'est pas nécessaire de faire une racine carré car on peut comparer les carrés !

Le code suivant permet d'écouter les clics de la souris

Exercice 5 - Selection colorée

Modifier le programme précédent pour que au lieu d'afficher la selection sur la console, la figure selectionnée s'affiche en orange.