Laboratoire informatique – SIMDisplayColor : La gestion des

LaboratoireSIMDisplayColor Page1sur4
RédigéparSimonVézina
20160506
LaboratoireinformatiqueSIMDisplayColor:
Lagestiondesexceptions
Tabledesmatières
Descriptionduprogramme......................................................................................................................................1
Objectifdulaboratoire.............................................................................................................................................1
Documentation.........................................................................................................................................................1
Programme...............................................................................................................................................................1
Partie1:Lesopérationsmathématiquessurlescouleurs......................................................................................2
Partie2:Gestiond’unecouleurnégative................................................................................................................2
Partie3:Plusieurstypesd’exceptionpouvantêtrelancées...................................................................................3
Descriptionduprogramme
LelaboratoireSIMDisplayColorestuneapplicationpermettantd’effectuerdesopérationsmathématiques
d’additionetdemultiplicationsurdescouleursdeformatrgbetd’afficherlacouleurcalculéedansunfichier
desortiedeformatpng.
Objectifdulaboratoire
CelaboratoireconsisteraàsefamiliariseraveclaclassedecouleurSColorainsiquedesesopérations
mathématiquesafind’approfondiretd’appliquerlanotiond’exceptionenjavaparl’actiondelancer(throw)et
d’attraper(trycatch)desexceptions.
Documentation
Unedocumentationsurlescouleursdeformatrgbestdisponibleauliensuivant:
http://profs.cmaisonneuve.qc.ca/svezina/nyc/note_nyc/NYC_XXI_Chap%206.3.pdf
Programme
LeprogrammeSIMDisplayColorestdisponibledansunformatjarauliensuivant:
http://profs.cmaisonneuve.qc.ca/svezina/projet/ray_tracer/download/SIMDisplayColor.jar
LaboratoireSIMDisplayColor Page2sur4
RédigéparSimonVézina
20160506
Partie1:Lesopérationsmathématiquessurlescouleurs
1‐VousallezcommencerparouvrirlefichierSIMDisplayColor.javadanslepackagesim/applicationet
lirelaméthodemain()decetteclasse.Onyretrouvelecalculd’uncouleurainsiquedesonaffichage.Lancer
l’applicationSIMDisplayColoretvérifiezlerésultatdelacouleur.Lefichierimagequiaétégénéest
disponibledanslerépertoiredevotreprojet.
Quelestlenomdelacouleurc1?
Quelestlenomdelacouleurc2?
Quelestlenomdelacouleurc3obtenueparl’additiondelacouleurc1etc2?
2‐Ajoutezunesectiondecodedanslaméthodemain()delaclasseSIMDisplayColor.javaafinderéaliser
l’additiondelacouleur(1.0,1.0,0.0)aveclacouleur(1.0,0.0,1.0).
Quelestlenomdelacouleurobtenueparcetteopération?
Estcequecettecouleurestlerésultatmathématiquedel’addition?Sinon,expliquezpourquoiil
n’enn’estpasainsi.Pourtrouveruneexplication,vousdevezconsulterlaméthode
normalizeClampChannel()utiliséelorsdel’appeldelaméthodenormalizeColor()delaclasseSColor.
3‐Ajoutezunesectiondecodedanslaméthodemain()delaclasseSIMDisplayColor.javaafinderéaliserla
multiplicationparunscalairedelacouleur(1.0,1.0,1.0)aveclescalaire0.6.
Quelestlenomdelacouleurobtenueparcetteopération?
Décrivezuneinterprétationàlamultiplicationd’unecouleurparunscalairepositifinférieurà1surle
résultatdelacouleurcalculée.
4‐Ajoutezunesectiondecodedanslaméthodemain()delaclasseSIMDisplayColor.javaafinderéaliserla
multiplicationdelacouleur(0.0,1.0,1.0)aveclacouleur(1.0,0.2,0.5).
Quelestlenomdelacouleurobtenueparcetteopération?
Décrivezuneinterprétationàlamultiplicationd’unecouleurparuneautrecouleur.
Partie2:Gestiond’unecouleurnégative
1‐Ajoutezunesectiondecodedanslaméthodemain()delaclasseSIMDisplayColor.javaafinderéaliser
l’additiondelacouleur(0.8,0.1,1.0)aveclacouleur(0.7,0.1,‐0.5).Danscetteaddition,onyretrouvedes
couleursavecdeschamps«négatif».
Quelleestlavaleurnumériquedurésultatmathématiquedecetteopération?
Estcequ’unecouleurapuêtreaffichée?Sioui,préciserlenomdelacouleur.Sinon,pourquoi?
2‐Ajoutezunesectiondecodedanslaméthodemain()delaclasseSIMDisplayColor.javaafinderéaliser
l’additiondelacouleur(0.2,0.5,0.7)aveclacouleur(0.4,0.2,‐0.5).
Quelleestlavaleurnumériquedurésultatmathématiquedecetteopération?
Estcequ’unecouleurapuêtreaffichée?Sioui,préciserlenomdelacouleur.Sinon,pourquoi?
LaboratoireSIMDisplayColor Page3sur4
RédigéparSimonVézina
20160506
3‐Lesdernièresinstructionsàlaméthodemain()engendreuneexceptionlancéeparl’objetbufferdelaclasse
BufferedImagesituédanslaméthodedisplay(SColorcolor).Conceptuellement,unecouleurnedevraitjamais
êtrenégative,carellen’apasd’interprétationchromatique.
Pourréglercettesituation,vousallezaméliorerleconstructeurdelaclasseSColor enintroduisantune
contraintesurlesvaleursnumériquesadmissiblesauchampr,getbdelaclasseSColor.
Dansleconstructeur
publicSColor(doublered,doublegreen,doubleblue,doublealpha),
vousallezvérifierqueleschampssoientpositifsavantd’effectuerl’affectationdecesvaleursàvotreobjet
SColor.VousallezlanceruneexceptiondetypeSConstructorExceptionavecunmessagedécrivantles
raisonsdel’exceptionsil’undesparamètresr,g,oubestinvalide.Exécutezvotreapplication.
Estcequ’uneexceptiondetypeSConstructorExceptionestlancéeparvotreapplication?Sioui,
expliquezpourquoi.
4‐ Afindepermettrel’exécutioncomplèteduprogramme,ilfautpréciserauprogrammecequ’ildoitfaire
lorsquesurvientuneexception.Regroupezdansunbloc«trycatch»lesinstructionspouvant
potentiellementgénérerdesexceptionsdetypeSConstructorException. Danslebloc«catch»,affichez
unmessageconsolelorsqu’uneexceptionsurvient.Unmessageadéquatdoitdécrirelanaturedel’exception
quiestsurvenue.Exécutezvotreapplicationetassurezvousquetouteslesexceptionsdetype
SConstructorExceptionontétéattrapées.
Présentement,combiend’exception(s)sontlancéesparl’exécutiondevotreapplication?
5‐Ajoutezunesectiondecodedanslaméthodemain()delaclasseSIMDisplayColor.javaafinderéaliserla
multiplicationparunscalairedelacouleur(0.5,0.5,1.0)aveclescalaire‐0.3.
Estcequ’unemultiplicationparunscalairenégatifestuneopérationmathématiqueadéquate?
Estcequ’ilfaudraitajouterdesinstructionspermettantdelancerdesexceptionsdetype
SConstructorExceptionlorsdel’appeldelaméthode
publicSColormultiply(doublem)
delaclasseSColorlorsqu’ilyaunscalairenégatifenmultiplicationavecunecouleur?Justifiezvotre
réponse.
Partie3:Plusieurstypesd’exceptionpouvantêtrelancées
1‐PourconstruireunecouleurdetypeSColor,onpeutégalementutiliserleconstructeur
publicSColor(Stringstring)throwsSReadingException
utilisantcommeparamètreuneexpressionenmotreprésentantunecouleur.Ajoutezunesectiondecodedans
laméthodemain()delaclasseSIMDisplayColor.javaafinderéaliserl’additiondedeuxcouleursdevotre
choixenutilisantle«nom»descouleurs(ex:mauve,violet,rose).
Estcequevouspouvezstrictementutilisercenouveauconstructeurpourdéfinirdesnouvelles
couleurs?Sinon,justifiezpourquoi.
LaboratoireSIMDisplayColor Page4sur4
RédigéparSimonVézina
20160506
2‐Aprèsavoirréalisécettetâcheprécédente,vousremarquerezquevousnepouvezpaslancerl’exécution,car
uneerreuresttoujoursprésentedansvotrecode.Leconstructeurquevousutilisezpeutlancerdesexceptions
detypeSReadingException.CetteexceptionhéritantdelaclasseException(commeIOException)doit
obligatoirementêtregéréedansunbloc«trycatch»contrairementàl’exception
SConstructorExceptionhéritantdelaclasseRuntimeException(commeNullPointerException)la
gestionestfacultative.
Regroupezvotreblocd’instructiondansunbloc«try–catch»enn’oubliantpasd’afficherunmessageconsole
adéquatdanslebloc«catch».Lancezl’exécutionduprogramme.
Estcequevotreexécutions’estréaliséesanslancerd’exception?S’ilyaeuuneexceptiondelancée,
décrivezlaraison?
3‐Ajoutezunesectiondecodedanslaméthodemain()delaclasseSIMDisplayColor.javaafinderéaliser
l’additiondelacouleur(0.3,0.2,0.7)aveclacouleur(0.7,‐0.3,‐0.5),maisenutilisantlesconstructeurs
suivantes
c1=newSColor("[0.3,0.2,0.7]");
c2=newSColor("[0.7,‐0.3,‐0.5]");
etaffichezlacouleurrésultante.
Queltyped’exceptionl’applicationatellelancée?
Pourquoiceproblèmeesttoujoursprésentmalgrélefaitqu’unesolutionavaitétépréalablement
trouvéeausujetdescouleursnégatives?
4‐Modifiezleconstructeur
publicSColor(Stringstring)throwsSReadingException
delaclasseSColorafinquelesexceptionsquepourraitengendrerlesinstructionsprécédentespuissentêtre
géréesadéquatement.
1 / 4 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 !