Friday, July 30, 2010
   
Text Size

Reprezenatrea grafica pe calculator

In  perioada  actuala,  este  de  neconceput  sa  realizam  programe  care  se  pot  utiliza  in  practica,  fara  sa  folosim  grafica  pe  calculator.  De  cele  mai  multe  ori,  un  desen  valoreaza  mai  mult  decat  1000  de  vorbe.

Explicati  cuiva  cum  se  ajunge  la  dumneavoastra  acasa,  si  veti  observa  ca  intelege  mai  usor,  dupa  un  desen.
Limbajul  TURBO  PASCAL,  contine  o  serie  de  proceduri  si  functii  care  permit  realizarea  unor  aplicatii  grafice.  Acestea  sunt  reunite  in  unitatea  GRAPH  care  se  gaseste  in  subcatalogul  BGI.

-Initializarea  modelului  grafic.
Pentru  ca  imaginea  sa  poata  aparea  pe  ecran,  calculatorul  trebuie  inzestrat  cu  o  placa  grafica  ce  contine  memorie  video(in  care  se  retin  informatii  asupra  imaginii).  Exista  mai  multe  tipuri  de  placi  grafice (CGA,  EGA,  VGA)  care  difera  prin  memorie  si  alti  parametrii.  Orice  limbaj  care  foloseste  aceste  placi,  trebuie  sa  contina  rutine  specifice  lor.  Limbajul  TURBO  PASCAL,  contine  mai  multe  componente  soft,  care  lucreaza  cu  diversele  placi,  numite  DRIVERE.  DRIVERELE,  se  gasesc  in  fisierele  cu  extensia  BGI.
In  unele  moduri  de  lucru  avem  o  rezolutie  mai  buna (mai  multe  puncte  pe  ecran)  dar  avem  mai  putine  culori,  si  se  pot  retine  mai  putine  pagini  video,  iar  in  altele  avem  o  rezolutie  mai  proasta  dar  putem  reprezenta  un  desen  utilizand  mai  multe  culori  si  putem  retine  mai  multe  pagini  video.
-Selectarea  DRIVER-ului  si  a  modului  grafic  de  lucru  se  face  prin  utilizarea  procedurii  INTIGRAPH  care  are  3  parametrii:
-gdriver (integer)  care  contine  DRIVER-ul.
-gmod (integer)  care  contine  modul  de  lucru.
-o  varianta  de  tip  sting  ce  arata  calea  catre  unitatea  GRAPH.
Forma  generala  a  acestei  proceduri  este  INITGRAPH(gdriver,  gmod,  cale).
-Programarea  culorii  tine  cont  de  placa  grafica  folosita (de  driverul  folosit),  precum  si  de  modul  grafic  in  care  se  lucreaza.  Astfel  exista  moduri  grafice  monocrome,  in  care  avem  doar  doua  culori  si  moduri  grafice  care  dispun  de  mai  multe  culori.
Multimea  culorilor  care  pot  fi  folosite  la  un  moment  dat  pentru  a  reprezenta  o  imagine  grafica  formeaza  paleta  de  culori.  Schimbarea  paletei  de  culori,  atrage  modficarea  instantanee  a  culorilor  in  care  apare  un desen  pe  ecran. Paleta  de  culori,  care  la  un  moment  dat,  da  culorile  pe  ecran  se  numeste  paleta  activa.  Fiecare  culoare  se  obtine  ca  o  combinatie  intre  trei  culori  fundamentale  si  anume: rosu,  verde,  albastru.  Deoarece  fiecare  culoare  fundamentala,  poate  avea  un  cod  de  la  0  la  63,  codul  final  al  culorii  se  obtine  din  combinarea  culorilor  fundamentale,  fiecare  cu  nuanta  ei.
-Procedura  CLEARVIEWPORT  sterge  ecranul  cu  culoarea  de  fond,  aceasta  aplicandu-se  si  ferestrei  de  lucru.
-Coordonatele  ecran  si  reprezentarea  punctelor.

Oricare  ar  fi  modul  de  lucru  ales,  un  punct  se  reprezinta  printr-un  pixel  de  coordonate  x  si  y (x  reprezinta  coloana  si  y  linia).  Un  punct  se  reprezinta  cu  ajutorul  procedurii  PUTPIXEL.  Coordonata  maxima  x  de  pe  ecran  se  poate  afla  cu  ajutorul  functiei  de  tip  integer  GETMAXX,  iar  coordonata  maxima  y,  cu  ajutorul  functiei  de  tip  integer  GETMAXY.  

Este  bine  ca  programele  de  grafica  sa-si  stabileasca  coordonatele  in  care  se  deseneaza  in  functie  de  valorile  returnate  ale  acestei  functii.                 
In  acest  fel,  se  asigura  o  relativa  independenta  a  programelor  fata  de  modul  grafic  si  chiar  fata  de  DRIVER.
-Punct  curent.  Cand  lucram  in  modul  text,  se  poate  utiliza  cursorul.  
Exista  proceduri  grafice  care  tin  cont  de  pozitia  cursorului  in  sensul  ca  pornesc  trasarea  desenului  din  acel  punct.
-Trasarea  segmentelor.  Doua  puncte  date  prin  coordonate,  pot  fi  unite  printr-un  segment,  care  poate  fi  trasat  prin  linii  de  grosimi  diferite.
Limbajul  TURBO  PASCAL  contine  o  procedura  care  are  rol  de  a  fixa  modul  de  trasare  al  segmentelor  numita  SETLINESTYLE.  Forma  generala  este  SETLINESTYLE  si  contine  tip,  linie,  model,  grosime.
Toti  parametrii  sunt  de  tip  WORD.  Odata  executata,  aceasta  procedura  are  efect  pana  la  intalnirea  altui  apel  al  ei  pana  la  sfarsit.