Laboratoire informatique – SIMDisplayColor : La gestion des

Laboratoire–SIMDisplayColor Page1sur4
RédigéparSimonVézina
2016‐05‐06
Laboratoireinformatique–SIMDisplayColor:
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
Laboratoire–SIMDisplayColor Page2sur4
RédigéparSimonVézina
2016‐05‐06
Partie1:Lesopérationsmathématiquessurlescouleurs
1‐VousallezcommencerparouvrirlefichierSIMDisplayColor.javadanslepackagesim/applicationet
lirelaméthodemain()decetteclasse.Onyretrouvelecalculd’uncouleurainsiquedesonaffichage.Lancer
l’applicationSIMDisplayColoretvérifiezlerésultatdelacouleur.Lefichierimagequiaétégénéré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?
Est‐cequecettecouleurestleré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?
Est‐cequ’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?
Est‐cequ’unecouleurapuêtreaffichée?Sioui,préciserlenomdelacouleur.Sinon,pourquoi?
Laboratoire–SIMDisplayColor Page3sur4
RédigéparSimonVézina
2016‐05‐06
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.
Est‐cequ’uneexceptiondetypeSConstructorExceptionestlancéeparvotreapplication?Sioui,
expliquezpourquoi.
4‐ Afindepermettrel’exécutioncomplèteduprogramme,ilfautpréciserauprogrammecequ’ildoitfaire
lorsquesurvientuneexception.Regroupezdansunbloc«try–catch»lesinstructionspouvant
potentiellementgénérerdesexceptionsdetypeSConstructorException. Danslebloc«catch»,affichez
unmessageconsolelorsqu’uneexceptionsurvient.Unmessageadéquatdoitdécrirelanaturedel’exception
quiestsurvenue.Exécutezvotreapplicationetassurez‐vousquetouteslesexceptionsdetype
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.
Est‐cequ’unemultiplicationparunscalairenégatifestuneopérationmathématiqueadéquate?
Est‐cequ’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).
Est‐cequevouspouvezstrictementutilisercenouveauconstructeurpourdéfinirdesnouvelles
couleurs?Sinon,justifiezpourquoi.
Laboratoire–SIMDisplayColor Page4sur4
RédigéparSimonVézina
2016‐05‐06
2‐Aprèsavoirréalisécettetâcheprécédente,vousremarquerezquevousnepouvezpaslancerl’exécution,car
uneerreuresttoujoursprésentedansvotrecode.Leconstructeurquevousutilisezpeutlancerdesexceptions
detypeSReadingException.CetteexceptionhéritantdelaclasseException(commeIOException)doit
obligatoirementêtregéréedansunbloc«try–catch»contrairementàl’exception
SConstructorExceptionhéritantdelaclasseRuntimeException(commeNullPointerException)oùla
gestionestfacultative.
Regroupezvotreblocd’instructiondansunbloc«try–catch»enn’oubliantpasd’afficherunmessageconsole
adéquatdanslebloc«catch».Lancezl’exécutionduprogramme.
Est‐cequevotreexé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’applicationa‐t‐ellelancé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 l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!