Home

Projet de Java : dessin géométrique 1 L`application de dessin

image

Contents

1. ajouter d autres transformations g om triques compl ter la fonction d aide pour qu elle lise les informations qu elle affiche depuis un fichier respectant un certain formatage 7 R capitulatif Vous devez rendre une archive jar avant le 10 juin 2006 en l envoyant l adresse sujetmastermind yahoo fr Cette archive sera semblable celle que vous aviez rendue pour le premier projet Son nom sera de la forme ELEVE1_ELEVE2 jar et elle comportera le rapport au format HTML ou RTF les fichiers Java au minimum les cinq classes de l interface graphique ainsi que les quatre classes g om triques la Javadoc Dans chacun des fichiers de l archive n oubliez pas d indiquer les noms des l ves du bin me Toutes les fonctionnalit s mentionn es dans le sujet sont obligatoires l exception de celles propos es dans la partie Bonus Vous pr ciserez dans votre rapport les choix particuliers d impl mentation que vous aurez faits les difficult s que vous aurez pu rencontr es et la fa on dont vous les aurez r solues ainsi que les ventuelles am liorations que vous aurez ajout es Ces derni res seront prises en compte dans la notation 8 Annexes 8 1 Distance d un point une figure Distance d un point un rectangle La distance d P A B d un point P un segment A B est gale la distance du point son projet orthogonal P sur la droite AB si P
2. D finissez la classe BarreBoutons qui h rite de la classe Panel et qui impl mente l interface ActionListener pour g rer les appuis sur les boutons qu elle contient En particulier elle doit poss der une m thode publique modeCourant O qui indique quel est le dernier bouton sur lequel on a cliqu Pour le moment la barre doit comporter au moins les boutons permettant de cr er un rectangle en en tra ant une diagonale de cr er un cercle en en tra ant un rayon et de supprimer l l ment le plus proche du point o l on clique 3 2 Classe ZoneDessin D finissez la classe ZoneDessin qui h rite de la classe Panel Elle poss de un champ public static final int chelle voir la m thode dessine dans la partie 2 2 pour son utilisation Elle g re les v nements souris et impl mente notamment l interface MouseListener Son constructeur cr e un objet de la classe Dessin et un objet de la classe BarreBoutons Bien s r les r actions un clic de la souris d pendront du mode renvoy par la m thode modeCourant de la barre de boutons cf section 4 Enfin il est n cessaire de fournir une m thode paint Graphics g qui trace l ensemble des figures dans le contexte graphique g 3 3 Classe Fen trePrincipale D finissez la classe Fen trePrincipale qui h rite de la classe Frame Cette fen tre devra poss der au moins un menu en haut une zone zone de dessin et sa barre de boutons comme sur le mod le fig
3. quand les figures se chevauchent le dessin changera selon l ordre dans lequel on trace les figures Modifiez la classe Dessin pour qu elle permette de modifier cet ordre et ajoutez la fen tre des propri t s de chaque figure deux boutons avancer et reculer qui permettront de modifier la profondeur de la figure en changeant sa position avec la figure qui la pr c de ou qui lui succ de 4 5 Mode suppression Nous souhaitons pouvoir supprimer des figures En mode suppression un clic de souris dans la zone de dessin doit supprimer la figure la plus proche 5 Sauvegarde et utilisation des fichiers Impl mentez dans la classe Dessin une m thode de sauvegarde qui crit dans un fichier dont le nom sera choisi l aide d un JFileChooser voir l annexe pour plus de pr cisions les figures du dessin Attention seule la classe Figure doit d clarer impl menter l interface Serializable mais pas la classe Dessin ni aucune autre classe Impl mentez aussi une m thode de lecture d une liste de figures depuis un tel fichier de sauvegarde Vous ajouterez l interface graphique les l ments n cessaires pour donner acc s ces fonc tions 6 Bonus Voici quelques possibilit s d am lioration de votre programme ajouter une barre d tat qui guide l utilisateur ajouter une function undo modifier la classe rectangle pour qu un rectangle puisse ne pas avoir ces cot s parall les aux axes
4. A B et est gale min AP BP sinon fig 5 Pour calculer la distance d un point un rectangle il suffit d utiliser bon escient la distance d un point un segment P A FIG 5 Calcul de la distance d un point P au segment A B lorsque le projet orthogonal P de P appartient au segment A B Distance d un point un cercle La distance d P C d un point P un cercle C est la valeur absolue de la diff rence entre la distance du point P au centre c du cercle C et et rayon r du cercle fig 6 FIG 6 Calcul de la distance d un point un cercle 8 2 Exemple d utilisation des classes swing Vous utiliserez principalement les biblioth ques java awt et java io qui ont t vues en cours Vous trouverez leur documentation compl te l addresse http java sun com j2se 1 5 0 docs api Cependant vous aurez aussi besoin des quelques composants suivants tir s de la biblioth que javax swing la bo te de dialogue JFileChooser permettant de s lectionner un fichier et qui peut tre utilis e par exemple de la fa on suivante import javax swing JFileChooser import java io File import java io FilelInputStream import java io 0ObjectInputStream JFileChooser filechooser new JFileChooser filechooser showOpenDialog this File f filechooser getSelectedFile ObjectInputStream ois new ObjectInputStream new FileIlnputStream Vous n oublierez pas de traiter
5. correctement le cas o f contient null apr s l appel getSelectedFile et les exceptions ventuelles la bo te de dialogue JColorChooser permettant de s lectionner une couleur et qui peut tre utilis e par exemple de la fa on suivante import javax swing JColorChooser Color fColor la couleur actuelle fColor JColorChooser showDialog this Choisissez une couleur fColor Vous n oublierez pas de traiter correctement le cas o fColor contient null apr s l appel showDialog
6. pour leur appliquer des trans formations g om triques translation ou autre ou de modifier leurs propri t s couleur et remplis sage notamment L interface doit comporter un menu et des boutons permettant l utilisateur de choisir l une des fonctions suivantes dessiner une figure pr d finie segment triangle carr rectangle etc choisir la couleur de dessin par d faut supprimer une figure du dessin s lectionner des figures afficher les propri t s d une figure pour pouvoir les modifier enregistrer un dessin dans un fichier ou en charger un depuis un ficher quitter le programme 1 2 Exemple d ex cution Au lancement la Zone r serv e au dessin est vierge fig 1 La fen tre comporte un menu permettant de sauvegarder ou charger un dessin et des boutons permettant d acc der aux fonctions d crites ci dessus Enfin une barre d tat en bas de la fen tre permet de renseigner l utilisateur sur les actions en cours Lorsque plusieurs figures ont t dessin es le mode s lection fig 2 permet de s lectionner certaines d entre elles pour leur appliquer une m me transformation Par ailleurs on peut modifier les attributs d une figure en cliquant sur le bouton Propri t s puis sur la figure en question cela fait appara tre une boite de dialogue contenant les propri t s de la figure fig 3 Application graphique AGIRA Figure Mode Nouveau ir E
7. transmettrez la fonction dessine un param tre entier chelle qui indique ce nombre de pixels Pour dessiner une figure il faut aussi conna tre sa couleur Ajoutez une variable couleur la classe Figure Les constructeurs de vos classes prendront comme param tres une couleur et deux points Pour le rectangle ces deux points seront les deux extr mit s d une diagonale Pour le cercle il s agira du centre du cercle et d un point sur le cercle Pour s lectionner une figure il est n cessaire de savoir mesurer la distance d un point celle ci Ajoutez une m thode public abstract double distance Point p la classe Figure Modifiez les classes h ritant de Figure en cons quence Vous trouverez en annexe les formules math matiques utiles 2 3 Classe Dessin D finissez la classe Dessin qui contient un tableau de figures l ensemble des figures du des sin qui permet d ajouter ou de supprimer facilement une figure et qui peut renvoyer la figure la plus proche d un point donn On d finira les m thodes public void ajoute Figure f public void supprime Figure f public Figure donnePlusProche Point p puis une m thode public void dessineTout Graphics g double chelle 3 Classes d interface de test Pour pouvoir tester vos classes il est maintenant n cessaire de programmer une interface de test rudimentaire Celle ci sera enrichie par la suite 3 1 Classe BarreBoutons
8. 1 Il ne faudra surtout pas oublier de mettre une entr e Quitter dans le menu Fichier Ajoutez enfin une fonction d aide qui affiche le mode d emploi du programme Vous tes libres d effectuer cet affichage de la fa on qui vous para t la meilleure V rifiez que tout fonctionne comme pr vu 4 Les diff rents modes Nous voulons pendant le d roulement d une session de dessin tour tour dessiner s lection ner modifier ou translater des figures Toutes ces actions doivent tre faisables la souris Le nombre de boutons tant limit 3 il va falloir d finir des modes pour qu une m me action n ait pas le m me effet suivant le mode courant de l application Les diff rents modes sont d crits dans les parties suivantes Vous ajouterez un menu qui permette de s lectionner le mode courant ainsi que des boutons donnant un acc s plus rapide certains de ces modes 4 1 Mode dessin Nous allons d velopper ce qui vous a t demand en TP En particulier une figure ne sera plus positionn e al atoirement dans la zone de dessin lors de sa cr ation Cr ation Pour cr er une figure l utilisateur doit cliquer pour d finir l origine de la figure puis glisser pour d finir un deuxi me point de contr le ce sont ces deux points qui seront donn s comme param tres au constructeur Durant le mouvement de la souris tant que le bouton est ap puy on souhaite qu une petite croix reste visible pour indiqu
9. Universit de Nice Sophia Antipolis Donn le 28 avril 2006 POLYTECH CiP1 rendre le 9 juin 2006 Projet de Java dessin g om trique Avant de commencer la qualit des commentaires avec notamment la pr sence des ant c dents des cons quents des invariants de boucle et de classe et des r les de chaque m thode ainsi que les noms donn s aux variables l emploi bon escient des majuscules et la bonne in dentation rentreront pour une part importante dans l appr ciation du travail Vous trouverez en annexe quelques informations utiles Dans le cadre de ce projet vous devez respecter pr cis ment les consignes qui vous sont donn es concernant la structure du programme et donc notamment le nom et le r le de chacune des classes En revanche vous tes libres d apporter diverses am liorations votre programme qu elles aient t sugg r es ou non par ce sujet Pour cette raison vous devez rendre avec votre projet un court rapport expliquant ventuellement la fa on dont vous avez enrichi votre projet Enfin si plusieurs projets s av rent identiques leurs auteurs seront sanctionn s par un z ro 1 L application de dessin 1 1 Objectifs Dans le cadre de ce projet vous r aliserez un programme de dessin g om trique avec une interface graphique Ce programme permettra l utilisateur de dessiner des figures g om triques rectangles cercles etc d en supprimer d en s lectionner certaines
10. b Les points Point a et Point b sont les deux points d finis par l appui et le rel chement du bouton de la souris Compl tez l interface comme il se doit La translation fig 4 correspond l op ration matricielle suivante LG y y Uy Nous voulons maintenant modifier les propri t s d une figure Plus pr cis ment il faut qu un clic de souris en mode propri t s entra ne l ouverture d une fen tre de propri t s pour la figure la plus proche On souhaite lire des informations sur la figure et pouvoir les modifier 4 4 Mode propri t s FIG 4 Translation Propri t s de la figure Cr ez une classe Fen trePropri t s qui h rite de la classe Dialog Ajoutez la classe Figure un attribut de ce type Cet attribut sera la fen tre des propri t s de la figure consid r e En plus des informations sur la figure ajoutez cette fen tre une bo te cocher permettant de remplir la figure ou non et un bouton permettant de choisir la couleur de la figure La classe Figure devra impl menter les interfaces ItemListener et ActionListener pour prendre en compte les v nements provenant de ces deux l ments Position de la figure dans le dessin Il est int ressant lorsque le dessin est compos de plusieurs figures de pouvoir modifier leur ordre On souhaite avoir la possibilit de faire avancer une figure vers l avant plan ou de la faire reculer vers l arri re plan Ainsi
11. e les propri t s d une figure une classe BarreBoutons qui organise les diff rents boutons une classe BoutonCouleur qui d crit le bouton utilis pour s lectionner une couleur des classes g om triques une classe abstraite Figure dont d rivent toutes les figures une classe Dessin qui contient toutes les figures des classes h ritant de la classe Figure telles que la classe Rectangle ou la classe Cercle 2 Classes g om triques 2 1 Classe Point D finissez une classe Point qui contient sous forme de double les coordonn es d un point 2 2 Classe abstraite Figure et ses h riti res La classe abstraite Figure contient les d clarations des m thodes et des variables communes toutes les figures Au fur et mesure de la construction de l application il faudra y ajouter les l ments n cessaires Pour le moment on a seulement besoin qu une figure poss de une m thode dessine qui prend en param tre un contexte graphique et une chelle Ajoutez la classe Figure la m thode suivante public abstract void dessine Graphics g int chelle Le r le de cette m thode est d appeler les commandes de trac du contexte graphique g Contrai rement ce que vous avez fait en TP o vous avez travaill avec des coordonn es enti res sur une grille nous d sirons g rer des coordonn es d cimales Il faut donc choisir combien de pixels repr sentent une unit Pr cis ment vous
12. er le point de d part du mouvement i e l endroit o le bouton a t enfonc Affichage Chaque figure peut s afficher l aide de sa m thode dessine Graphics g int chelle On souhaite ajouter la possibilit de dessiner soit le contour de la figure soit la figure remplie On ajoutera par la suite l interface graphique les l ments n cessaires l utilisation de cette fonction Couleur des figures Ajoutez la barre de boutons un bouton permettant de choisir la couleur des prochaines figures cr es 4 2 Mode s lection Nous voulons maintenant s lectionner une ou plusieurs figures pour pouvoir leur appliquer une m me transformation Pour cela on souhaite d sormais qu un clic de souris dans la zone de dessin s lectionne la figure la plus proche du pointeur Lorsqu un objet est s lectionn il est mis en surbrillance c est dire qu on l entoure de jaune Pensez traiter cela diff remment selon que l objet est rempli ou non Plusieurs objets peuvent tre s lectionn s la fois Cliquer pr s d un objet d j s lectionn doit le d selectionner 4 3 Mode translation Lorsqu on est en mode translation on souhaite d placer tous les objets s lectionn s en m me temps Ajoutez la classe Figure une m thode public abstract void translate Point a Point b et impl mentez la dans chacune des classes d riv es elle doit appliquer la figure la translation de vecteur T a
13. nregistrer Ouvrir Er Quitter SOEH Suppression Rectangle Cercie Translation Bienvenue FIG 1 Fen tre principale un menu en haut une zone de dessin au centre des boutons pour le choix des figures et du mode courant une barre d tat en bas pour informer sur le mode en cours Application graphique Fichier Figure Mode Nouveau Ouvrir Enregistrer Selection Suppression Rectangle Cercle Tracez le vecteur de translation FIG 2 Fen tre principale plusieurs figures ont t dessin es La fen tre Propri t s permet de modifier la figure choisie On peut l utiliser pour choisir de remplir ou non la figure d finir sa couleur et son ordre d apparition cette derni re fonction est utile en cas de chevauchement des figures Propri t s Cercle derayon3 64 F remplir avancer recur FIG 3 Fen tre permettant de modifier les propri t s de la figure choisie La couleur le remplis sage et l ordre des figures peuvent tre modifi s 13 Structure du programme Pour programmer cette application vous utiliserez les classes suivantes des classes d interface graphique une classe Fen trePrincipale qui organise tous les l ments de l interface une classe ZoneDessin qui traite les v nements souris li s au dessin et aux choix de mode une classe Fen trePropri t s qui pr sent

Download Pdf Manuals

image

Related Search

Related Contents

User manual - Välkommen till Mr Filip  Manual de usuario  Fiche technique AQUAFIX  Samsung 16-50mm F3.5-5.6  

Copyright © All rights reserved.
Failed to retrieve file