Pour ce TP, nous allons utiliser une bibliothèque simplissime de dessin. La bibliothèque se trouve ici et la documentation là. Vous devez ajouter le bibliothèque à DrJava (Edit–> Preferences –> Add Extra ClassPath).
Pour se familiariser avec la bibliothèque, effectuer les dessins suivants:
un rectangle.
un étoile à cinq branche (on rappelle que pour obtenir les coordonnées des cinq points extrèmes, on peut utiliser, pour i
allant de 0 à 4, les coordonnées
xCentre+rayon*Math.cos(i*2*Math.PI/5)
yCentre+rayon*Math.sin(i*2*Math.PI/5)
un cube en perspective cavalière puis isométrique.
un mélange aléatoire des ces formes de différentes tailles, positions et couleurs.
comme le point précédent mais en ajoutant une temporisation entre chaque apparition
un étoile qui tourne sur elle-même (pour dessiner l’étoile mais ayant tourné de « x
», il faut faire varier i
de x
à 4+x
par pas de 1 ; x
est à prendre entre 0 et 1).
Pour cette exercice, il faudra écrire la documentation au fur et à mesure des classes.
Créer une classe Point pour représenter un point. Elle contiendra ses coordonnées, sa couleur et l’épaisseur du trait.
Y ajouter une méthode void draw(Drawing d)
qui dessine le point.
Créer une classe Triangle
pour représenter un triangle. Les trois segments peuvent être de couleurs différentes mais sont tous de la même épaisseur. Les points ont leur propore couleur et épaisseur (la même pour les trois). Y adjoindre la méthode draw
.
Idem pour les rectangles.
Créer une classe Maison
qui représente une maison, toujours avec une méthode draw
.
En utilisant la classe précédente, faire une animation avec une maison dont la taille devient de plus en plus grande.
Repenser toutes les classes en créant des classes supplémentaires utiles pour structurer mieux les données : un Point
contient six nombres, il peut être intéressant de les regrouper de manière logique.
Faire un diagramme de classe de votre solution.
Créer une classe Forme
qui contient un tableau de points. Implémenter la méthode draw
pour qu’elle dessine la forme (d’une seule couleur et une seule épaisseur)
Surcharger la méthode draw
: implémentez une méthode void draw(Drawing d, boolean diagonales)
qui dessine aussi les « diagonales » si le deuxième paramètre est true
. Si la forme a moins de 4 points, cette méthode doit lancer une exception de type IllegalArgumentException
. On rappelle la double boucle for
pour parcourir toutes les paires (i,j) d’un tableau
:
for (int i=0;i<tableau.length-1;i++) {
for(int j=i+1;j<tableau.length;j++) {
Créer une classe Mondrian
qui contient un tableau de formes, toujour avec une méthode draw
Surcharger la méthode draw
de la classe Mondrian
pour qu’elle prenne en paramètre aussi un double diag
et qui dessine les formes avec la diagonale avec probabilité diag
. Si l’exception IllegalArgumentException
est lancée, la méthode dessinera un X rouge de largeur 50 en haut à gauche de la fenêtre.
Dessiner le diagramme des classes de la classe Mondrian
.