Sunteți pe pagina 1din 4

Ministerul Educaiei al Republicii Moldova

Universitatea Tehnic a Moldovei Facultatea


CIM
Catedra Automatica i Tehnologii Informaionale

RAPORT
Lucrare de laborator Nr.3
La Grafica pe Calculator
Varianta 10

A efectuat:

st. Gr. TI

A verificat:

conf.univ.,dr.
Moraru Victor
Chiinu 2016

Lucrarea de laborator nr.3

Tema: TRASAREA GRAFICELOR


Scopul lucrrii: Sintetizarea i afiarea graficelor funciilor utiliznd
posibilitile bibliotecii grafice.
Sarcina lucrrii:
1) Elaborai un program pentru afiarea graficelor funciilor canform
variantei folosind transformarea fereastr-poart. Identificai ferestrele
cele mai reprezentative pentru funiile respective i justificai alegerea.
2) Utilizai algoritmul Bresenham pentru identificarea pixelilor.
3) Prezentati graficele pe acelai ecran m diferite pori de vizualizare.
Varianta 10:

Listingul programului:
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
#include <math.h>
#define pi 3.14
int main()
{
initwindow(1200, 400, "Lab 3");
//desenarea chenarului si textului
setcolor(DARKGRAY);
line(400,0,400,400);
line(800,0,800,400);
outtextxy(10,380,"y=atan(k*x)");
outtextxy(410,380,"y=sin(k*x)");
outtextxy(810,380,"y=x^3");
//desenarea axelor
setcolor(WHITE);
line(10,200,390,200);
line(200,10,200,390);
line(200,10,195,20);
line(200,10,205,20);
line(390,200,380,195);
line(390,200,380,205);
outtextxy(210,10,"y");
outtextxy(380,205,"x");

line(410,200,790,200);
line(600,10,600,390);
line(600,10,595,20);
line(600,10,605,20);
line(790,200,780,195);
line(790,200,780,205);
outtextxy(610,10,"y");
outtextxy(780,205,"x");
line(810,200,1190,200);
line(1000,10,1000,390);
line(1000,10,995,20);
line(1000,10,1005,20);
line(1190,200,1180,195);
line(1190,200,1180,205);
outtextxy(1010,10,"y");
outtextxy(1180,205,"x");
//desenarea graficelor functiilor
double xf,yf,pasx,pasy,x,y;
pasx=380/(2*pi);
pasy=380/(2*pi);
int k=1;
for(x=-1*pi;x<=1*pi;x+=0.0001){
y=atan(k*x);
xf=200-pasx*x;
yf=200-pasy*y;
putpixel(xf,yf,BLUE);
y=sin(k*x);
xf=600+pasx*x;
yf=200-pasy*y;
putpixel(xf,yf,YELLOW);
y=x*x*x;
xf=1000+pasx*x;
yf=200-pasy*y;
putpixel(xf,yf,RED);
}
getch();
return 1;

closegraph();

Captur de ecran:

Concluzie: n urma efecturii acestei lucrri de laborator am studiat principiile


de sintez a graficelor, algoritmi de trasare a liniilor. n urma definirii funciei se
traseaz graficul ei utiliznd coordonatele x i y , i apelnd funcia putpixel.
Astfel am creat un program ce traseaz 3 grafice diferite n aceeai fereastr.