Universitatea Tehnică a Moldovei FCIM Catedra Calculatoare
RAPORT la lucrarea de laborator nr. 1 la Grafica pe Calculator
Tema: „SINTEZAREA FIGURILOR GRAFICE ”
Varianta 13
efectuat:
st. !r. !r. C"1#1 $nachi %icolae
verificat:
&ector superior Constantin 'lotnic
Chi(inău ) *+1, +
Scopul lucrării: -binerea cuno(tinelor practice /n sinte0a fi!urilor !rafice. Sarcina:
1. e a elabora un pro!ra2 pentru sinte0area (i afi(area fi!urilor !rafice confor2 variantei 134 *. e a afi(a fi!uri sinte0ate /n diferite pori de vi0uali0are4 3. e a utili0a operaiuni de salvare (i restaurare a i2a!inilor /n5din fi(iere4 Codul Programului: package com.graphics; import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; import java.awt.event.AconEvent; import java.awt.event.AconListener; import java.awt.geom.Arc2D; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.geom.ath2D; import java.awt.image.!"#ere$Image; import java.io.%ile; import java.io.IOExcepon; import java."l.logging.Level; import java."l.logging.Logger; import java.awt.image.*; class &'anel exten$s (anel ) private stac oolean check+checkl+checkr+checkt+checkp+checkc+checke+checksc+checkse+img; p"lic voi$ paint,omponent-raphics g/ ) s"per.paint,omponent-g/; removeAll-/; g.$rawImage-set!ackgro"n$-/+ 0+ 0+n"ll/; (!"1on new (!"1on-3rism3/; .a$$AconListener-e 45 ) checktr"e; this.repaint-/; 6/; .set!o"n$s-70+780+90+:0/; this.a$$-/; rism-g/; (!"1on 7 new (!"1on-3Line3/; 7.a$$AconListener-e 45 ) checkltr"e; this.repaint-/; 6/; 7.set!o"n$s-70+70+90+:0/; this.a$$-7/; Line-g/; (!"1on 2 new (!"1on-3ect3/; 2.a$$AconListener-e 45 ) checkrtr"e; this.repaint-/; 6/; 2.set!o"n$s-70+<0+90+:0/; this.a$$-2/; ect-g/;
1
(!"1on : new (!"1on-3=riangle3/; :.a$$AconListener-e 45 ) checkttr"e; this.repaint-/; 6/; :.set!o"n$s-70+>0+90+:0/; this.a$$-:/; =riangle-g/; (!"1on ? new (!"1on-3ol'gon3/; ?.a$$AconListener-e 45 ) checkptr"e; this.repaint-/; 6/; ?.set!o"n$s-70+7:0+90+:0/; this.a$$-?/; ol'gon-g/; (!"1on > new (!"1on-3,ircle3/; >.a$$AconListener-e 45 ) checkctr"e; this.repaint-/; 6/; >.set!o"n$s-70+270+90+:0/; this.a$$->/; ,ircle-g/; (!"1on @ new (!"1on-3Elipse3/; @.a$$AconListener-e 45 ) checketr"e; this.repaint-/; 6/; @.set!o"n$s-70+2>0+90+:0/; this.a$$-@/; Elipse-g/; raphics2D g2 -raphics2D/ g; (!"1on 8 new (!"1on-34,ircle3/; 8.a$$AconListener-e 45 ) checksctr"e; this.repaint-/; 6/; 8.set!o"n$s-70+2<0+90+:0/; this.a$$-8/; Bec,ircle-g2/; (!"1on 9 new (!"1on-34Elipse3/; 9.a$$AconListener-e 45 ) checksetr"e; this.repaint-/; 6/; 9.set!o"n$s-70+::0+90+:0/; this.a$$-9/; BecElipse-g2/; (!"1on < new (!"1on-3Erase3/; <.a$$AconListener-e 45 ) this.repaint-/; 6/; <.set!o"n$s-870+70+90+:0/; this.a$$-; (!"1on 70 new (!"1on-3Bave3/; 70.a$$AconListener-e 45 ) tr' )
*
BcreenBhot-/; 6 catch -AC=Excepon e7/ ) e7.printBtack=race-/; 6 catch -IOExcepon e7/ ) e7.printBtack=race-/; 6 6/; 70.set!o"n$s-870+>0+90+:0/; this.a$$-70/; (!"1on 77 new (!"1on-3Open3/; 77.a$$AconListener-e 45 ) imgtr"e; this.repaint-/; 6/; OpenImage-g/; 77.set!o"n$s-870+<0+90+:0/; this.a$$-77/; 6 private voi$ rism -raphics g/) int xol' ):>0+>>0+>>0+>:0+>:0+::0+:>0+::0+::0+>:0+>:0+>>06; int 'ol' )7>0+7>0+200+2?0+7<0+7<0+7>0+7<0+2?0+2?0+7<0+7>06; int xol'F ):>0+::0+::0+>:0+>>0+>>06; int 'ol'F )7>0+7<0+2?0+2?0+200+7>06; iF-check/ ) g.set,olor-,olor.GELLOC/; g.Hllol'gon-xol'F+ 'ol'F+@/; g.set,olor-,olor.!LE/; g.$rawol'gon-xol'+ 'ol'+72/; checkFalse; g.set,olor-,olor.!LA,J/; 6 6 private voi$ Line -raphics g/) iF-checkl/ ) g.set,olor-,olor.ED/; g.$rawLine-7>0+ :>0+ 800+ >0/; checklFalse; g.set,olor-,olor.!LA,J/; 6 6 private voi$ ect -raphics g/) iF-checkr/ ) g.set,olor-,olor.,GAK/; g.Hllect-2>0+ 90+ ?00+ 200/; g.set,olor-,olor.ED/; g.$rawect -2>0+ 90+ ?00+ 200/; checkrFalse; g.set,olor-,olor.!LA,J/; 6 6 private voi$ =riangle -raphics g/) int xol'= )?>0+@20+2906; int 'ol'= )90+:00+:006; iF-checkt/ ) g.set,olor-,olor.EEK/; g.Hllol'gon-xol'=+ 'ol'=+:/; g.set,olor-,olor.!LA,J/; g.$rawol'gon-xol'=+ 'ol'=+:/;
3
checktFalse; g.set,olor-,olor.!LA,J/; 6
6 private voi$ ol'gon -raphics g/) iF-checkp/ ) ol'gon p new ol'gon-/; For -int i 0; i 78; iMM/ p.a$$oint--int/-??0 M 790 * &ath.cos-i * 2 * &ath.I N 78//+ -int/ -7<0 M 790 * &ath.sin-i * 2 * &ath.I N 78///; g.$rawol'gon-p/; checkpFalse; 6 6 private voi$ ,ircle -raphics g/) iF-checkc/ ) g.set,olor-,olor.,GAK/; g.Hllo"n$ect-:>0+90+200+200+:@0+:@0/; g.set,olor-,olor.OAKE/; g.$rawOval-:>0+90+200+200/; checkcFalse; g.set,olor-,olor.!LA,J/; 6 6 private voi$ Elipse -raphics g/) iF-checke/ ) g.set,olor-,olor.IKJ/; g.Hllo"n$ect-:>0+720+200+7:0+:00+:00/; g.set,olor-,olor.!LA,J/; g.$rawOval-:>0+720+200+7:0/; checkeFalse; g.set,olor-,olor.!LA,J/; 6 6 private voi$ Bec,ircle -raphics2D g2/) iF-checksc/ ) g2.$raw-new Arc2D.Do"le-:>0+ 90+ 200+ 200+ 0+ 790+ Arc2D.IE//; checkscFalse; 6 6 private voi$ BecElipse -raphics2D g2/) iF-checkse/ ) g2.$raw-new Arc2D.Do"le-:>0+ 720+ 200+ 7:0+ 0+ 790+ Arc2D.IE//; checkseFalse; 6 6 private voi$ BcreenBhot-/ throws AC=Excepon+ IOExcepon ) ectangle r new ectangle-200+ :0+ >72+ :@0/; !"#ere$Image i BcreenImage.createImage-r/; BcreenImage.writeImage-i+ 3BcreenBhot.jpg3/; 6 private voi$ OpenImage-raphics g/) iF-img/ ) g.$rawImage-getImage-/+ 200+ 0+ n"ll/; img False; 6 6 private Image getImage-/)
6
Image i7n"ll; tr' ) i7 ImageIO.rea$-new %ile-3BcreenBhot.jpg3//; 6 catch -IOExcepon ex/ ) Logger.getLogger-&'anel.class.getKame-//.log-Level.BEEE+ n"ll+ ex/; 6 ret"rn i7; 6 private Image set!ackgro"n$-/) Image i7n"ll; tr' ) i7 ImageIO.rea$-new %ile-3!ackgro"n$.jpg3//; 6 catch -IOExcepon ex/ ) Logger.getLogger-&'anel.class.getKame-//.log-Level.BEEE+ n"ll+ ex/; 6 ret"rn i7; 6 6 class &'%rame exten$s (%rame ) &'%rame-/ ) this.set=itle-3raphics3/; this.setesiPale-False/; this.setBiPe-900+ ?00/; this.setDeFa"lt,loseOperaon-(%rame.EQI=ROKR,LOBE/; this.a$$-new &'anel-//; 66 p"lic class La7, ) p"lic stac voi$ main-Btring args/ ) &'%rame F new &'%rame-/; F.setisile-tr"e/; 6 6
Rezultatele Testării:
Concluzia:
7n ur2a efectuării lucrării respective de laborator a2 /nvă8at folosirea func8iilor necesare pentru lucrul cu obiectele !rafice /n li2ba9ul ava precu2 ;i stocarea unei i2a!ini capturate /ntr"un fi;ier precu2 ;i vi0uali0area acesteia din cadrul ferestrei de lucru. Tot /n lucrarea respectivă a2 utili0at butoanele ca ele2ente de interac8iune cu aplica8ia creată. #