Extras din laborator
Scopul lucrării: Obţinerea cunoştinţelor practice în sinteza figurilor grafice
Sarcina lucrării:
1. De a elabora un program pentru sintezarea şi afişarea figurilor grafice conform variantelor tabelul.
2. De a afişa figuri sintezate în diferite porţi de vizualizare.
3. De a descrie fiecare figura sintezată.
4. De a utiliza operaţiuni de salvare şi restaurare a imaginilor în/din fişiere
Tabelul : Variantele de îndeplinire a lucrării
Varianta nr.
Figuri grafice nr.
8 6,8,2,4,3,1,7,5,9
1.1 – Cerc 2.1 – Poligon 3.1 - Elipsa
1.2 – Sector de cerc 2.2 – Dreptunghi 3.2 - Paralelepiped
1.3 – Triunghi 2.3 – Linie 3.3 – Sector de elipsa
Listingul programului:
#include<DOS.h>
#include<math.h>
#include<conio.h>
#include<stdio.h>
#include<graphics.h>
#include<stdlib.h>
#include<fstream.h>
void initGr()
{ int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "");
errorcode = graphresult();
if (errorcode != grOk)
{
printf("Graphics error: %sn", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}
}
void chenar()
{
int maxx,maxy;
maxx=getmaxx();
maxy=getmaxy();
setcolor(GREEN);
line(0,0,maxx,0);
line(0,maxy,maxx,maxy);
line(0,0,0,maxy);
line(maxx,0,maxx,maxy);
}
void gratii()
{
int maxx,maxy;
maxx=getmaxx();
maxy=getmaxy();
setcolor(BLUE);
line(maxx/3,0,maxx/3,maxy);
line(2*maxx/3,0,2*maxx/3,maxy);
line(0,maxy/3,maxx,maxy/3);
line(0,2*maxy/3,maxx,2*maxy/3);
}
void main()
{
initGr();
int maxx,maxy;
maxx=getmaxx();
maxy=getmaxy();
chenar();
gratii();
setcolor(RED);
//1.1
circle(maxx/6,maxy/6,maxy/6-5);
//1.2
setfillstyle(SOLID_FILL,YELLOW);
pieslice(maxx/2,maxy/6,75,300,maxy/6-5);
//1.3
line(5*maxx/6,15,2*maxx/3+15,maxy/3-15);
line(5*maxx/6,15,maxx-15,maxy/3-15);
line(2*maxx/3+15,maxy/3-15,maxx-15,maxy/3-15);
setfillstyle(SOLID_FILL,BLUE);
floodfill(maxx*5/6,maxy/6,RED);
//2.1
int r=maxy/6-5;
setcolor(RED);
moveto(maxx/6,2*maxy/3-6); //setam cursorul in puctul dat
for(float i=0;i<2*M_PI;i+=M_PI/6)
{
lineto(maxx/6+r*sin(i),maxy/2+r*cos(i)); //desenam linile
// delay(100);
}
//2.2
setcolor(3);
setfillstyle(SOLID_FILL,BLUE);
rectangle(maxx/3+20,maxy/3+20,2*maxx/3-20,2*maxy/3-20);
floodfill(maxx/2,maxy/2,3);
//2.3
setcolor(BLUE);
line(2*maxx/3+25,maxy/3+25,maxx-25,2*maxy/3-25);
//3.1
setcolor(RED);
ellipse(maxx/6,5*maxy/6,0,360,maxx/6-10,maxy/6-25);
//3.2
bar3d(maxx/3+15,2*maxy/3+25,2*maxx/3-25,maxy-15,20,1);
//3.3
setfillstyle(SOLID_FILL,YELLOW);
sector(5*maxx/6,5*maxy/6,10,270,maxx/6-10,maxy/6-25);
//memorarea in fisier
Preview document
Conținut arhivă zip
- GRAFICA1.CPP
- lab1.doc