Ministerul Educatiei şi Ştiintei al Republicii Moldova UNIVERSITATEA TEHNICĂ IN M!"!VA Catedra Electronic#
Referat La Grafica pe calculator Lucrarea de laborator Nr 1
Tema:
Sinteza Figurilor Grafice
A efectuat:
A verificat:
studentul grupa: profesoara: Plotnic Constantin Constantin
Chişinău 2!
!b$inerea cunoştin$elor practice %n sinte&a 'i(urilor şi supra'etelor %n ba&a bibliotecii (ra'ice a oric#rui li)ba* de pro(ra)are +,ascal- C..- ori /ava01 Scopul
lucrării :
Consideraţii teoretice:
!rice lucru %n re(i) (ra'ic se %ncepe cu ini$iali&area )odului (ra'ic care se 'ace cu a*utorul 'unctiei InitGraph(GraphDriver,GraphMode) 2 'unc$ia stabileşte valorile i)plicite ale para)etrilor de operare %n )od (ra'ic şi incarc# de pe disc %n )e)orie )odulul driver corespuntor pri)ului para)etru1 Modul de lucru al driver3ului %ncarcat este speci'icat prin al doilea para)etru- iar denu)irea co)plet# a c#ii unde se va cauta 'işierul 145I corespuntor este pre&entat# prin al treilea para)etru1 6nc7iderea )odului se 'ace cu 8 Closegraph – 'unc$ia e'ectuia revenirea %n )od te9t - )odului i)plicit de lucru a siste)ului de a'işare1 Ea apelea 'unc$ia (rap7'ree)en pentru a elibera )e)oria ocupat# de driver3ul(ra'ic- setul sau seturile de caractere utili&ate de pro(ra) precu) şi &onele de )e)orie interne1 Funcţiile de desenare a liniilor şi suprafeţelor sînt !ine("#,$#,"%,$%) 2 'unctia a'isea&a o linie intre punctele de coordonate +9:-;:0 si
+9<-;<0- speci'icate ca para)etri1 &ectangle("#,$#,"%,$%) 2 'unc$ia a'işea un dreptun(7i speci'icat prin dou# v%r'uri dia)etral opuse8 st%n(a sus si dreapta *os1 6n biblioteca (ra'ic# e9ist# 'unc$ii pentru desenarea ur)#toarelor curbe conice8 cerc- arc de cerc- elips# şi arc de elips# Circle(",$,r) 2 'unc$ia a'işea un cerc av%nd centrul de coordonate +9-;0 şi ra&a r-speci'icate ca para)etri1 Ra&a se e9pri)# printr3un nu)#r %ntre(1 'rc(",$,ui,uf,r) – 'unc$ia a'işea un arc de cerc- %ntre un(7iul ini$ial şi un(7iul 'inal s%nt speci'icate ca para)etri1 Ra&a cercului şi coordonatele centrului 9 şi ; s%nt de ase)enea para)etri ai 'unc$iei1 Un(7iurile ini$ial şi 'inal se e9pri)# %n (rade- cuprinse %ntre = şi >?= (rade1 llipse(",$,ui,uf,a,) – 'unc$ia a'işea elipsa sau un arc de elips#1 Coordonatele centrului 9 şi ;- se)ia9ele a şi b precu) şi un(7iurile ini$ial ui şi respectiv u' s%nt speci'icate ca para)etri ai 'unc$iei1 Dra*pol$(n,+) – 'unc$ia dat# desenea un poli(on cu nu)#rul de v%r'uri n şi coordonatele )1 uprafaţa poligonalFillpol$ – 'unc$ia a'işea o supra'at# poli(inal# utili&ind valorile curente ale atributelor
de a'işare ale liniilor pentru contur- şi valorile curente ale atributelor de a'işare ale supra'e$elor pentru restul punctelor supra'e$ei1 ,oli(onul se speci'ic# prin nu)#rul de v%r'uri şi vectorul coordonatelor +9-;0 ale v%r'urilor1 6n ca&ul %n care coordonatele ulti)ului v%r' di'er# de coordonatele pri)ului v%r' poli(onul este %nc7is auto)at1 setfillst$le(n,+) – 'unc$ia dat# de'ineşte culoarea şi stilul %n care va 'i colorat# 'i(ura uprafaţa circular- şi eliptic-, sector de cerc şi de elips sector(",$,ui,uf,a,) 3 'unc$ia desenea un sector de cerc sau de elips# +depinte ce
lun(i)e le d#) ra;elor01 9-; 2 coordonatele centrului- un(7iurile ini$ial şi respectiv 'inal@ a-b 3 ra&ele1
Textul programului:
include B(rap7ics17 include Bstdio17 include Bconio17 include B'strea)17 void salvare+0D int i-*@ o'strea) '@ '1open+:1t9t-ios88out0@ 'or+iF=@
[email protected] 'or+*F=@*BG=@*..0 'BB (etpi9el+i-*0BB @ '1close+0@ void citire+0D int i-*@ unsi(ned int p@ i'strea) r@ r1open+:1t9t-ios88in0@ 'or+iF=@
[email protected] 'or+*F=@*BG=@*..0D rp@ putpi9el+i-*-p0@ r1close+0@ void desen+int st;le- int color0 Dset'illst;le+st;le-color0@ 'lood'ill+J?=-=-:J0@ void )ain+0 D clrscr+0@ int (rap7driverFETECT-(rap7)ode-cul@ c7ar c@ int polK=LFD<=-
=-<==-G=-=-<==-: G=-==-G=->==-<=-<J-<=-<=-?G=-><=0@ line+<:>-=-<:>-G=0@ line+G-=-G-G=0@ line+=-=-?G=-=0@ line+=-=-=-G0@ line+=-G-?>-G0@ line+?>-=-?>-G0@ QQ33333 Cerc3333333 setcolor+:J0@ circle+:=?-=-?=0@ QQ33333Sector de cerc3333333 setcolor+:J0@
set'illst;le+:-<0@ pieslice+>:- =- >J- <<=- ?=0@ QQ3333333333333Triun(7i333333 set'illst;le+:-<0@ line+G?-:<=-J?-:<=0@ line+J>?-?-?-GJ-:J0@ QQ33333 ,oli(on:G333333 setcolor+:J0@ drapol;+>=-pol0@ QQ33333 reptun(7i3333333 setcolor+:J0@ rectan(le+=-<=0@ 'lood'ill+>==-<:=-?<=-:=0@ QQ33333 Elipsa3333333 setcolor+:J0@ ellipse+:=J-G==-=->?=-=-G=0@ QQ33333 ,aralelipiped3333333 setcolor+:J0@ set'illst;le+:-<0@ bar>d +=->=-GJ=->=-:0@ QQ33333 Sector de elipsa3333333 setcolor+:J0@ set'illst;le+:-<0@ sector+J>G-GJ-:==-J=0@ (etc7+0@ salvare+0@ cleardevice+0@ citire+0@ (etc7+0@ close(rap7+0@ Concluzii: Efectuînd lucrarea dată am facut cunoştinţă cu bazele graficii în limbajul C++, am făcut cunoştinţă cu funcţiile de desenare a figurilor rimiti!e şi cu modurile de colorare a lor şi afişare unor sectiuni a acestor figuri"