Master Informatique Approche Objet – 4TIN706U Universit´ e Bordeaux

Master Informatique Approche Objet – 4TIN706U
Universit´e Bordeaux 2016 – 2017
TD No2 Une simulation de m´ecanique. Pr´ecisions
Organisation du code : balles en chute libre, Jokari, etc.
Les lois de cin´ematique suivantes pourront simplifier le code :
— ∆x=v×t
— ∆v=a×t
a=F/m
Pour simplifier ´egalement, nous dirons (ce qui est faux), que le rebond contre une surface
correspond `a inverser la vitesse en multipliant par un coefficient. La vitesse, quand `a elle, diminue
progressivement `a chaque instant de fa¸con proportionelle pour simuler l’effet de l’air (ce qui est
´egalement faux).
Exercices
1. Cr´eation des classes
(a) Cr´eer une classe Ball dans laquelle l’ensemble des propri´et´es d’un ballon ou d’une
balle seront regroup´ees (diam`etre, masse, coefficient d’´elasticit´e des rebonds, posi-
tion, vitesse, acc´el´eration, force instantan´ee). Cette classe n’est pas imm´ediatement
instanciable, car la force instantan´ee exerc´ee sur elle n’est pas encore connue (elle
d´ependra de quelle type de balle il s’agit : une balle en chute libre, une balle retenue
par un fil, une balle retenue par un ressort, etc.)
On y ajoutera les m´ethodes suivantes
Getters et Setters n´ecessaires et suffisants
step qui impl´emente les rebonds contre les parois.
draw qui dessine la balle sous la forme d’un simple cercle noir.
(b) Cr´eer une classe Basketball qui h´erite de Ball.
On y impl´ementera les m´ethodes suivantes
Getters et Setters n´ecessaires et suffisants.
step qui calcule la cin´ematique de la chute libre d’un corps (
a=
g).
draw qui dessine la balle sous la forme d’un rond color´e.
(c) Cr´eer une classe Jokaribox qui contiendra l’ensemble des propri´et´es d’une boite de
Jokari : position, largeur et hauteur.
(d) Cr´eer une classe Jokariball qui h´erite de Ball et qui impl´emente une balle reli´ee `a
un ´elastique.
On y impl´ementera les m´ethodes suivantes
Getters et Setters n´ecessaires et suffisants.
step qui calcule la cin´ematique d’une telle balle (
f=m
gK.x, o`u Kest un
coefficient de raideur et ∆xla distance entre un point de repos de l’´elastique et
la balle).
draw qui dessine la balle sous la forme d’un rond color´e reli´e `a un trait repr´esentant
l’´elastique.
(e) Cr´eer une classe Jokari qui contient une boite de Jokari et une balle de Jokari.
(f) Cr´eer une classe Animation qui contient un ensemble de balles de basket de Jokari.
2. D´ependance, Composition, H´eritage
(a) Dessiner sommairement le sch´ema UML de l’organisation des classes entre elles.
(b) Optimiser le code selon les principes d’encapsulation et celui qui consiste `a pr´ef´erer
la composition `a l’h´eritage.
(c) Ajouter aux constructeurs des affichages vers la sortie standard pour observer l’ordre
dans lequel les objets sont allou´es en m´emoire.
3. Collisions
(a) Ajouter une m´ethode boolean cover(Ball other) qui retourne la bool´een vrai
lorsque this et other se recouvrent.
(b) Ajouter une m´ethode void collision(Ball other) qui modifie les vitesses de this
et other en fonction d’une collision. Nous prendrons la formule suivante pour ce
calcul :
vA1=vB1
m1m2
m1+m2+vB22m2
m1+m2
vA2=vB12m1
m1+m2+vB2
m2m1
m1+m2
(c) Depuis quel(s) objet(s) et vers quel(s) objet(s) doit-on envoyer le message collision ?
Impl´ementer cet envoi de messages.
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !