Grafica Laborator Nr.3
Grafica Laborator Nr.3
Grafica Laborator Nr.3
Disciplina:Graficapecalculator
Raport
lalucrareadelaboratornr3
Tema : Desenarea graficelor pentru funcii
Chiinu 2016
Scopul lucrrii: Obinerea cunotinelor practice n sintetizarea i afiarea graficelor funciilor n
baza bibliotecii grafice.
Sarcina lucrrii:
Varianta 19.
Lista funciilor:
1. Y =2 sin(kx)
2
2. Z =Ax +Bx +C
3. W =cos(3 sin (kx))
Codul-surs al programului :
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <graphics.h>
int fereastraPoartaX (int xp_min, int xp_max, float xf_min, float xf_max,
float xf ) {
float scaleX = (xp_max - xp_min)/(xf_max - xf_min);
float tx = xp_min-scaleX*xf_min;
return floor(xf * scaleX + tx);
}
int fereastraPoartaY (int yp_min, int yp_max, float yf_min, float yf_max, float
yf) {
float scaleY = (yp_max - yp_min)/(yf_max - yf_min);
float ty = yp_min-scaleY*yf_min;
return floor(yf * scaleY + ty);
}
void drawAxes( int x_min, int x_max, int y_min, int y_max ){
int width = x_max - x_min; int height = y_max - y_min;
line(x_min,floor(height/2 + y_min),x_min+width,y_min +
floor(height/2)); /* Linia OX*/
line(x_min + width-3,y_min + floor(height/2)-3,x_min + width,y_min +
Pag. 1
floor(height/2));
line(x_min + width-3,floor(height/2)+3+ y_min,x_min +
width,floor(height/2)+ y_min);
line(x_min + floor(width/2),y_min,x_min + floor(width/2),height+
y_min); /* Linia OY */
line(x_min + floor(width/2)-3,3+ y_min,x_min + floor(width/2),y_min);
line(x_min + floor(width/2)+3,3+ y_min,x_min + floor(width/2),y_min);
}
Pag. 2
outtextxy(fereastraPoartaX(320, 640, -M_PI, M_PI, -M_PI),originY,"-PI");
outtextxy(fereastraPoartaX(320, 640, -M_PI, M_PI, M_PI)-15,originY,"PI");
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
setcolor(RED);
moveto(fereastraPoartaX(320, 640, -M_PI, M_PI,
-M_PI),fereastraPoartaY(300, 480,-1, 1, W(-M_PI,k)));
while (temp <= x_max ) {
temp += 0.1;
lineto(fereastraPoartaX(320, 640, -M_PI, M_PI,
temp),fereastraPoartaY(300, 480,-1, 1, W(temp,k)));
};
Pag. 3
Rezultatele:
1. Captura de ecran a graficelor funciilor sintezate:
Concluzii: Prin aceast lucrare au fost acaparate deprinderi practice legate de generarea graficelor
funciilor folosing biblioteca BGI. Folosing diferite valori are variabilelor A,B,C i k am putut
experimenta cu funciile date, observnd variabilitatea lor. Aa cum valorile funciilor
triginometrice sunt limitate de intervalurile [-1, 1] i [-2, 2], variabila k determin care va fi
perioada lor. Formulele prezentate n cadrul cursului de prelegeri Grafica pe Calculator de
Veaceslav Perju au un minus considerabil ele sunt destinate situatiei in care axa Y este orientat n
sus, deci originea ecranului e in punctul extrem de stnga jos. Din cauza c n biblioteca BGI
originea e amplasat n colul din stnga sus i Y crete n jos, graficele funciilor se primesc
inversate. Un alt program a fost realizat, n care formulele pentru transformarea fereastr-poart au
fost adaptate pentru biblioteca BGI. El va fi prezentat aparte de aceast lucrare.
Pag. 4