Graphics Editor code Using C++ Language
Write a Graphics Editor program to develop a graphics editor which includes features like line draw, rectangle draw,circle draw, pie chart draw,ellipse draw,polygon draw,bard raw, pixel draw,text draw etc.
Graphics Editor have a menu for user interaction from which user can provide input to program.By selecting appropriate option user will get output.
Graphics Editor code
1 2 |
<br/> #include <br/> #include <br/> #include <br/> #include <br/> #include <br/> class figures <br/> { <br/> int x1,y1,x2,y2,rad,xrad,yrad,startang,endang,midx,midy; <br/> public: <br/> figures() <br/> { <br/> x1=0; <br/> y1=0; <br/> x2=0; <br/> y2=0; <br/> rad=0; <br/> xrad=0; <br/> startang=0; <br/> endang=0; <br/> midx=getmaxx(); <br/> midy=getmaxy(); <br/> } <br/> figures() <br/> { <br/> void linedraw(void); <br/> void rectangledraw(void); <br/> void circledraw(void); <br/> void piechartdraw(); <br/> void ellipsedraw(void); <br/> void polygondraw(void); <br/> void bardraw(void); <br/> void pixeldraw(void); <br/> void textdraw(void); <br/> }; <br/> void figures::linedraw(void) <br/> { <br/> int gd=DETECT,gm; <br/> cout<<"x1 is "; <br/> cin>>x1; <br/> cout<<"y1 is "; <br/> cin>>y1; <br/> cout<<"x2 is "; <br/> cin>>x2; <br/> cout<<"y2 is "; <br/> cin>>y2; <br/> getch(); <br/> clrscr(); <br/> initgraph(&gd,&gm,"c:\\tc\\bgi"); <br/> midx=getmaxx()/2; <br/> midy=getmaxy()/2; <br/> setcolor(4); <br/> outtextxy(20+x1,20+y1,"A LINE"); <br/> line(0,midy,midx*2,midy); <br/> line(midx,0,midx,2*midy); <br/> setcolor(YELLOW); <br/> line(x1+midx,midy-y1,x2+midx,midy-y2); <br/> getch(); <br/> cleardevice(); <br/> closegraph(); <br/> } <br/> void figures::rectangledraw(void) <br/> { <br/> int gd=DETECT,gm; <br/> cout<<"x1 is "; <br/> cin>>x1; <br/> cout<<"y1 is "; <br/> cin>>y1; <br/> cout<<"x2 is "; <br/> cin>>x2; <br/> cout<<"y2 is "; <br/> cin>>y2; <br/> getch(); <br/> clrscr(); <br/> initgraph(&gd,&gm,"c:\\tc\\bgi"); <br/> midx=getmaxx()/2; <br/> midy=getmaxy()/2; <br/> setcolor(4); <br/> outtextxy(20+x1,20+y1,"A RECTANGLE"); <br/> line(0,midy,midx*2,midy); <br/> line(midx,0,midx,2*midy); <br/> setcolor(YELLOW); <br/> rectangle(x1+midx,midy-y1,x2+midx,midy-y2); <br/> getch(); <br/> cleardevice(); <br/> closegraph(); <br/> } <br/> void figures::circledraw(void) <br/> { <br/> int gd=DETECT,gm; <br/> cout<<"CENTER POINTS"<<endl; <br=""> cout<<"x1 is "; <br/> cin>>x1; <br/> cout<<"y1 is "; <br/> cin>>y1; <br/> cout<<"r is "; <br/> cin>>rad; <br/> getch(); <br/> clrscr(); <br/> initgraph(&gd,&gm,"c:\\tc\\bgi"); <br/> midx=getmaxx()/2; <br/> midy=getmaxy()/2; <br/> setcolor(4); <br/> outtextxy(20+x1,20+y1,"A CIRCLE"); //use setaspestratio <br/> setcolor(YELLOW); <br/> line(0,midy,midx*2,midy); <br/> line(midx,0,midx,2*midy); <br/> setcolor(YELLOW); <br/> circle(x1+midx,midy-y1,rad); <br/> getch(); <br/> cleardevice(); <br/> closegraph(); <br/> } <br/> void figures::ellipsedraw() <br/> { <br/> int gd=DETECT,gm; <br/> cout<<"CENTER POINTS"<<endl; <br=""> cout<<"x1 is "; <br/> cin>>x1; <br/> cout<<"y1 is "; <br/> cin>>y1; <br/> cout<<"horizontal axis is "; <br/> cin>>xrad; <br/> cout<<"vertical axis is "; <br/> cin>>yrad; <br/> cout<<"starting angle is "; <br/> cin>>startang; <br/> cout<<"ending angle is "; <br/> cin>>endang; <br/> getch(); <br/> clrscr(); <br/> initgraph(&gd,&gm,"c:\\tc\\bgi"); <br/> midx=getmaxx()/2; <br/> midy=getmaxy()/2; <br/> setcolor(4); <br/> outtextxy(20+x1,20+y1,"AN ELLIPSE"); <br/> line(0,midy,midx*2,midy); <br/> line(midx,0,midx,2*midy); <br/> setcolor(YELLOW); <br/> ellipse(x1+midx,midy-y1,startang,endang,xrad+midx,midy-yrad); <br/> getch(); <br/> cleardevice(); <br/> closegraph(); <br/> } <br/> void figures::piechartdraw(void) <br/> { <br/> int gd=DETECT,gm,d=0,i,sum=0; <br/> int a[10]; <br/> cout<<"how many data you want to enter"<<endl; <br=""> cin>>d; <br/> for(i=0;i<d-1;i++) <br=""> { <br/> cout<<"percentage of data "<<i+1<<" =="<<endl; <br/> cin>>a[i]; <br/> sum=sum+a[i]; <br/> } <br/> a[i]=100-sum; <br/> cout<<" percentage="" of="" data="" "<<i+1<<"="=" "<<100-sum<<endl;="" <br=""> getch(); <br/> clrscr(); <br/> initgraph(&gd,&gm,"c:\\tc\\bgi"); <br/> midx=getmaxx()/2; <br/> midy=getmaxy()/2; <br/> setcolor(4); <br/> outtextxy(20+x1,20+y1,"A PIECHART"); <br/> line(0,midy,midx*2,midy); <br/> line(midx,0,midx,2*midy); <br/> startang=0; <br/> endang=0; <br/> for(i=0;i<d;i++) <br=""> { <br/> startang=endang; <br/> endang=startang+(a[i]*360)/100; <br/> setfillstyle(SOLID_FILL,i+3); <br/> pieslice(midx,midy,startang,endang,150); <br/> } <br/> getch(); <br/> cleardevice(); <br/> closegraph(); <br/> } <br/> void figures::polygondraw() <br/> { <br/> int gd=DETECT,gm; <br/> int poly[20],i=0; <br/> char other; <br/> cout<<"Enter vertices of the polygon"<<endl; <br=""> do <br/> { <br/> cout<<"x is "; <br/> cin>>poly[i]; <br/> poly[i]=poly[i]+318; <br/> i++; <br/> cout<<"y is "; <br/> cin>>poly[i]; <br/> poly[i]=-poly[i]+237; <br/> i++; <br/> cout<<endl<<"want to="" enter="" again";="" <br=""> cin>>other; <br/> }while(other=='y'); <br/> //closing polygon <br/> poly[i++]=poly[0]; <br/> poly[i]=poly[1]; <br/> clrscr(); <br/> i=(i+1)/2; <br/> initgraph(&gd,&gm,"c:\\tc\\bgi"); <br/> midx=getmaxx()/2; <br/> midy=getmaxy()/2; <br/> setcolor(RED); <br/> line(0,midy,midx*2,midy); <br/> line(midx,0,midx,2*midy); <br/> setfillstyle(SOLID_FILL,GREEN); <br/> //use fillpoly to fill color <br/> fillpoly(i,poly);//drawpoly(number of point we have entered,array); <br/> getch(); //includes closing point also therefore i+1 <br/> cleardevice(); <br/> closegraph(); <br/> } <br/> void figures::bardraw() <br/> { <br/> int gd=DETECT,gm,d=0,i,a[10],sum=0; <br/> cout<<"how many data you want to enter"<<endl; <br=""> cin>>d; <br/> for(i=0;i<d-1;i++) <br=""> { <br/> cout<<"percentage of data "<<i+1<<" =="<<endl; <br/> cin>>a[i]; <br/> sum=sum+a[i]; <br/> } <br/> a[i]=100-sum; <br/> cout<<" percentage="" of="" data="" "<<i+1<<"="=" "<<100-sum<<endl;="" <br=""> getch(); <br/> clrscr(); <br/> initgraph(&gd,&gm,"c:\\tc\\bgi"); <br/> midx=getmaxx()/2; <br/> midy=getmaxy()/2; <br/> setcolor(4); <br/> outtextxy(20+x1,20+y1,"A BARGRAPH"); <br/> line(0,midy,midx*2,midy); <br/> line(midx,0,midx,2*midy); <br/> for(i=0;i<d;i++) <br=""> { <br/> setfillstyle(SOLID_FILL,i+3); <br/> bar(45*(i+1)+midx,midy-((a[i]*100)/100),midx+(45*(i+1))+20,midy); //(width,height,dist from y axis,bottom down) <br/> } <br/> getch(); <br/> cleardevice(); <br/> closegraph(); <br/> } <br/> void figures::pixeldraw(void) <br/> { <br/> int gd=DETECT,gm; <br/> cout<<"x1 is "; <br/> cin>>x1; <br/> cout<<"y1 is "; <br/> cin>>y1; <br/> getch(); <br/> clrscr(); <br/> i nitgraph(&gd,&gm,"c:\\tc\\bgi"); <br/> midx=getmaxx()/2; <br/> midy=getmaxy()/2; <br/> setcolor(4); <br/> outtextxy(20+x1,20+y1,"A PIXEL"); <br/> line(0,midy,midx*2,midy); <br/> line(midx,0,midx,2*midy); <br/> setcolor(YELLOW); <br/> outtextxy(midx+x1,midy-y1,"(x1,y1)"); <br/> putpixel(midx+x1,midy-y1,YELLOW); <br/> getch(); <br/> cleardevice(); <br/> closegraph(); <br/> } <br/> void figures::textdraw() //graphics textstyle //cprintf <br/> { <br/> int gd=DETECT,gm; <br/> initgraph(&gd,&gm,"c:\\tc\\bgi"); <br/> for(int i=0;i<4;i++) <br/> { <br/> textmode(i); <br/> cout<<"C"; <br/> getch(); <br/> } <br/> closegraph(); <br/> } <br/> void main(void) <br/> { <br/> figures draw; <br/> int ch,ch1,i,n; <br/> clrscr(); <br/> do <br/> { <br/> clrscr(); <br/> draw.menu(); <br/> cin>>ch; <br/> switch(ch) <br/> { <br/> case 1: <br/> clrscr(); <br/> cout<<"HOW MANY LINE U WANT:"; <br/> cin>>n; <br/> for(i=0;i<n;i++) <br=""> draw.linedraw(); <br/> break; <br/> case 2: <br/> clrscr(); <br/> cout<<"HOW MANY LINE U WANT:"; <br/> cin>>n; <br/> for(i=0;i<n;i++) <br=""> draw.circledraw(); <br/> break; <br/> case 3: <br/> clrscr(); <br/> draw.ellipsedraw(); <br/> break; <br/> case 4: <br/> clrscr(); <br/> draw.piechartdraw(); <br/> break; <br/> case 5: <br/> clrscr(); <br/> draw.polygondraw(); <br/> break; <br/> case 6: <br/> clrscr(); <br/> draw.bardraw(); <br/> break; <br/> case 7: <br/> cout<<"HOW MANY LINE U WANT:"; <br/> cin>>n; <br/> for(i=0;i<n;i++) <br=""> draw.pixeldraw(); <br/> break; <br/> case 8: <br/> draw.rectangledraw; <br/> break; <br/> case 9: <br/> draw.textdraw(); <br/> break; <br/> case 10: <br/> break; <br/> default: <br/> cout<<"\nINVALID CHOICE"; <br/> } <br/> }while(ch!=9); <br/> getch(); <br/> } |
Source projectgeek.com