C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Computer Graphics ProgramsWrite a Program to draw basic graphics construction like line, circle, arc, ellipse and rectangle.#include<graphics.h> #include<conio.h> void main() { intgd=DETECT,gm; initgraph (&gd,&gm,"c:\\tc\\bgi"); setbkcolor(GREEN); printf("\t\t\t\n\nLINE"); line(50,40,190,40); printf("\t\t\n\n\n\nRECTANGLE"); rectangle(125,115,215,165); printf("\t\t\t\n\n\n\n\n\n\nARC"); arc(120,200,180,0,30); printf("\t\n\n\n\nCIRCLE"); circle(120,270,30); printf("\t\n\n\n\nECLIPSE"); ellipse(120,350,0,360,30,20); getch(); } Output Write a Program to draw animation using increasing circles filled with different colors and patterns.#include<graphics.h> #include<conio.h> void main() { intgd=DETECT, gm, i, x, y; initgraph(&gd, &gm, "C:\\TC\\BGI"); x=getmaxx()/3; y=getmaxx()/3; setbkcolor(WHITE); setcolor(BLUE); for(i=1;i<=8;i++) { setfillstyle(i,i); delay(20); circle(x, y, i*20); floodfill(x-2+i*20,y,BLUE); } getch(); closegraph(); } Output Program to make screen saver in that display different size circles filled with different colors and at random places.#include<stdio.h> #include<conio.h> #include"graphics.h" #include"stdlib.h" void main() { intgd=DETECT,gm,i=0,x,xx,y,yy,r; //Initializes the graphics system initgraph(&gd,&gm,"c:\\tc\\bgi"); x=getmaxx(); y=getmaxy(); while(!kbhit()) { i++; // setfillstyle(random(i),random(30)); circle(xx=random(x),yy=random(y),random(30)); setfillstyle(random(i),random(30)); floodfill(xx,yy,getmaxcolor()); delay(200); } getch(); } Output Write a Program to make a moving colored car using inbuilt functions.#include<graphics.h> #include<conio.h> int main() { intgd=DETECT,gm, i, maxx, cy; initgraph(&gd, &gm, "C:\\TC\\BGI"); setbkcolor(WHITE); setcolor(RED); maxx = getmaxx(); cy = getmaxy()/2; for(i=0;i<maxx-140;i++) { cleardevice(); line(0+i,cy-20, 0+i, cy+15); line(0+i, cy-20, 25+i, cy-20); line(25+i, cy-20, 40+i, cy-70); line(40+i, cy-70, 100+i, cy-70); line(100+i, cy-70, 115+i, cy-20); line(115+i, cy-20, 140+i, cy-20); line(0+i, cy+15, 18+i, cy+15); circle(28+i, cy+15, 10); line(38+i, cy+15, 102+i, cy+15); circle(112+i, cy+15,10); line(122+i, cy+15 ,140+i,cy+15); line(140+i, cy+15, 140+i, cy-20); rectangle(50+i, cy-62, 90+i, cy-30); setfillstyle(1,BLUE); floodfill(5+i, cy-15, RED); setfillstyle(1, LIGHTBLUE); floodfill(52+i, cy-60, RED); delay(10); } getch(); closegraph(); return 0; } Output Write a Program to print your name in Hindi script on console output in C.#include<stdio.h> #include<conio.h> #include<graphics.h> #include<dos.h> void main() { int gd=DETECT,gm; initgraph(&gd,&gm,"c:\\tc\\bgi"); setbkcolor(9); line(100,100,370,100); line(120,100,120,170); arc(143,100,0,180,23); line(165,100,165,155); arc(150,155,100,0,15); line(180,100,180,170); circle(210,140,10); line(210,130,250,130); circle(280,140,10); line(280,130,330,130); line(330,100,330,170); line(345,100,345,170); ellipse(337,100,0,180,9,18); getch(); } Output Write a Program control a ball using arrow keys.#include<graphics.h> #include<stdio.h> void main() { intgd=DETECT,gm,x,y,r=40; charch; initgraph(&gd,&gm,"C:/TURBOC3/BGI"); setbkcolor(3); x=getmaxx()/2; y=getmaxy()/2; setfillstyle(1,RED); circle(x,y,r); floodfill(x,y,getmaxcolor()); while((ch=getch())!=13) { switch(ch) { case 75: if(x>=r+1) { cleardevice(); circle(x-=10,y,r); floodfill(x,y,getmaxcolor()); } break; case 72: if(y>=r+1) { cleardevice(); circle(x,y-=10,r); floodfill(x,y,getmaxcolor()); } break; case 77: if(x<=(getmaxx()-r-10)) { cleardevice(); circle(x+=10,y,r); floodfill(x,y,getmaxcolor()); } break; case 80: if(y<=(getmaxy()-r-10)) { cleardevice(); circle(x,y+=10,r); floodfill(x,y,getmaxcolor()); } } } getch(); } Output Write a Program to implement Digital Clock.#include<stdio.h> #include<conio.h> #include<graphics.h> #include<dos.h> struct time t; void display(int,int,int); void main() { int i=0,gd=DETECT,gm,hr,min,sec; clrscr(); initgraph(&gd,&gm,"c:\\turboc3\\bgi"); setcolor(GREEN); settextstyle(4,0,7); while(!kbhit()) { gettime(&t); hr=t.ti_hour; min=t.ti_min; sec=t.ti_sec; i++; display(100,100,hr); display(200,100,min); display(300,100,sec); sound(400); delay(30); nosound(); delay(930); cleardevice(); } getch(); } void display(int x,int y,int num) { char str[3]; itoa(num,str,10); settextstyle(4,0,7); outtextxy(180,100,":"); outtextxy(280,100,":"); outtextxy(x,y,str); rectangle(90,90,380,200); rectangle(70,70,400,220); outtextxy(90,250,"Digital Clock"); } Output Write a Program to make puzzle game.#include<iostream.h> #include<dos.h> #include<conio.h> #include<graphics.h> #include<stdio.h> int a[5][5]; int t[16]={0,4,11,12,7,1,15,5,13,6,10,3,2,14,8,9}; int test[16]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; struct pos { int h,v; } p[4][4]; int row=4,col=4; void game(int); //MOVEMENT void rec(); //DRAWING RECTANGLE void pri(); //PRINTING NUMBERS INITIALLY int getkey(); // TO TRACE KEY PRESSED inline void space() { cout<<""; } inline void print(int r,int c) { cout<<a[r][c]; } void init(); //TO STORE CO-ORDINATES int stop(); // STOPING CRITERION void gopr(int,int); //TO PRINT NUMBER IN GAME void main() { int gm=DETECT,gd=DETECT; initgraph(&gm,&gd,"c:\\turboc3\\bgi"); int d,cr=1; init(); rec(); print(); while(cr!=16) { d=getkey(); game(d); cr=stop(); } settextstyle(10,0,1); outtextxy(400,300,"You are winner!"); getch(); } void rec() { setcolor(5); for(int i=0;i<200;i+=50) { for(int j=0;j<240;j+=60) rectangle(j+100,i+100,j+50,i+60); } } void pri() { int k=1; for(int x=0,i=6;x<4;x++,i+=3) { for(int y=0,j=10;y<4&&k<16;y++,j+=7,k++) { gotoxy(p[x][y].h,p[x][y].v); cout<<a[x][y]; } } } int getkey() { union REGS i,o; while(!kbhit()); i.h.ah=0; int86(22,&i,&o); return(o.h.ah); } void init() { int k=1; for(int x=0,i=6;x<4;x++,i+=3) { for(int y=0,j=10;y<4;y++,j+=7) { p[x][y].h=j; p[x][y].v=i; a[x][y]=t[k++]; } } } void game(int s) { int r=row-1; int c=col-1; if(s==77 &&c!=0) //right { col--; a[r][c]=a[r][c-1]; gopr(r,c-1); space(); gopr(r,c); print(r,c-1); } if(s==80 && r!=0) //down { row--; a[r][c]=a[r-1][c]; gopr(r-1,c); space(); gopr(r,c); print(r-1,c); } if(s==75 && c!=3) //left { a[r][c]=a[r][c+1]; col++; gopr(r,c+1); space(); gopr(r,c); print(r,c+1); } if(s==72 &&r!=3) //up { a[r][c]=a[r+1][c]; row++; gopr(r+1,c); space(); gopr(r,c); print(r+1,c); } } void gopr(int x, int y) { gotoxy(p[x][y].h,p[x][y].v); } int stop() { int k=0,d=1; for(int x=0;x<4;x++) { for(int y=0;y<4;y++) { if(a[x][y]==test[k]) d++; k++; } } return d; } Output Write a Program to implement bouncing ball using sine wave form.#include<stdio.h> #include<graphics.h> #define HEIGHT getmaxy() #define WIDTH getmaxx() #define GROUND 450 #define MAXHEIGHT 420 void main() { int x,y=0,t=MAXHEIGHT,c=1; int gd=DETECT,gm; initgraph(&gd,&gm,"C:\\T urboC3\\BGI"); for(x=40;x<=getmaxx();x=x+2) { //Draw Ground rectangle (0,MAXHEIGHT,getmaxx(),MAXHEIGHT+5); floodfill (5,MAXHEIGHT+3,WHITE); //Draw Ball pieslice(x,y,0,360,20); //floodfill(x,y,RED); delay(100); if(y>MAXHEIGHT-20) { c=0; t=t-40; } if(y<=(MAXHEIGHT-t)) { c=1; } if(t>=40) y=y+(c? 15:-15); cleardevice(); //Exit upon keypress if(kbhit()) break; } getch(); } Output Write a Program to implement Bouncing Ball in vertical direction.#include <stdio.h> #include <conio.h> #include <graphics.h> #include <dos.h> int main() { int gd = DETECT, gm; int i, x, y, flag=0; initgraph(&gd, &gm, "C:\\TC\\BGI"); x = getmaxx()/2; y = 30; while (!kbhit()) { if(y >= getmaxy()-30 || y <= 30) flag = !flag; /* draws the gray board */ setcolor(RED); setfillstyle(SOLID_FILL, RED); circle(x, y, 30); floodfill(x, y, RED); delay(50); cleardevice(); if(flag) { y = y + 5; } else { y = y - 5; } } getch(); closegraph(); return 0; } Output Write a program of Translation, Rotation, and Scaling using Composite Transformation.#include<stdio.h> #include<conio.h> #include<graphics.h> #include<math.h> int x1,y1,x2,y2,x3,y3,a,b; void draw(); void rotate(); int main(void) { int gd=DETECT,gm; initgraph(&gd,&gm,"C:\\TC\\BGI"); printf("Enter first co-ordinate value for triangle:"); scanf("%d%d",&x1,&y1); printf("Enter second co-ordinatevalues for triangle:"); scanf("%d%d",&x2,&y2); printf("Enter third co-ordinate valuesfor triangle:"); scanf("%d%d",&x3,&y3); draw(); getch(); rotate(); getch(); return 0; } void draw() { line(x1,y1,x2,y2); line(x2,y2,x3,y3); line(x3,y3,x1,y1); } void rotate() { int a1,a2,a3,b1,b2,b3; float angle; printf("Enter the rotation angle co-ordinates:"); scanf("%f",&angle); cleardevice(); angle=(angle*3.14)/180; a1=a+(x1-a)*cos(angle)-(y1-b)*sin(angle); b1=b+(x1-a)*sin(angle)+(y2-b)*cos(angle); a2=a+(x2-a)*cos(angle)-(y1-b)*sin(angle); b2=b+(x2-a)*sin(angle)+(y2-b)*cos(angle); a3=a+(x3-a)*cos(angle)-(y1-b)*sin(angle); b3=b+(x3-a)*sin(angle)+(y2-b)*cos(angle); printf("ROTATION"); printf("\n Changed coordinates\n"); printf("%d %d\n%d %d\n%d %d",a1,b1,a2,b2,a3,b3); line(a1,b1,a2,b2); line(a2,b2,a3,b3); line(a3,b3,a1,b1); } Output Write a program to draw a Circle using midpoint implementation Method.#include<stdio.h> #include<graphics.h> void drawcircle(int x0, int y0, int radius) { int x = radius; int y = 0; int err = 0; while (x >= y) { putpixel(x0 + x, y0 + y, 7); putpixel(x0 + y, y0 + x, 7); putpixel(x0 - y, y0 + x, 7); putpixel(x0 - x, y0 + y, 7); putpixel(x0 - x, y0 - y, 7); putpixel(x0 - y, y0 - x, 7); putpixel(x0 + y, y0 - x, 7); putpixel(x0 + x, y0 - y, 7); if (err <= 0) { y += 1; err += 2*y + 1; } if (err > 0) { x -= 1; err -= 2*x + 1; } } } void main() { int gdriver=DETECT, gmode, error, x, y, r; initgraph(&gdriver, &gmode, "c:\\turboc3\\bgi"); printf("Enter radius of circle: "); scanf("%d", &r); printf("Enter co-ordinates of center(x and y): "); scanf("%d%d", &x, &y); drawcircle(x, y, r); getch(); } Output Write a program to draw Bezier curve.#include Output Program to rotate a rectangle about its midpoint#include<iostream.h> #include <stdio.h> #include<conio.h> #include<graphics.h> #include<stdlib.h> #define pi 3.14 class arc { float x[10], y[10], theta, h1, k1,r[0][10],ang; float p[10][10],p1[10][10],x1[10], y1[10],xm,yx; int i, k, j, n; public: void get(); void cal(); void map(); void graph(); void plot(); void plot1(); }; void arc::get() { cout "<<"\n ENTER ANGLE OF ROTATION "; cin>>ang; n = 4; cout<<"\n ENTER"; for (i=0; i<n; i++) { cout<<"\n x["<i<<"] and y["<<i<<"]"; cin>>x[i]>>y[i]; } h1=x [0] + (([1]-x[0])/2); k1=y[0]+(([3]-y[0])/2); cout<<"\n MIDPOINT OF RECTANGLE IS--"<<h1<<"\t"<<k1; theta=(ang*pi)/180?; r[0][0]=cos (theta); r[0][1]= -sin?(theta); r[0][2]=(-h1*cos(theta))+(k1*sin(theta)+h1; r[1][0]=sin (theta); r [1][1]=cos (theta); r [1][2]=(-h1*sin(theta))+(-k1*cos(theta)+k1; r[2][0]=0; r[2][1]=0; r[2][2]=1; } void arc ::cal() { for(i=0;i<n;i++) { p[0][i]=x[i]; p[1][i]=y[i]; p[2][i]=1; } for(i=0;i<3;i++) { for(j=0;j<n;j++) { p1[i][j]=0; for (k=0;k<3;k++) { p1[i][j]+=r[i][k]*p[k][j]; } } } for(i=0;i<n;i++) { x1[i]=p1[0][i]; y1[i]=p[1][i]; } } void arc::map() { int gd=DETECT, gm; initgraph (&gd, &gm, ""); int errorcode = graphresult(); /*an error occurred */ if (errorcode!=grOK) { printf("Graphics error: %s \n",grapherrormsg (errorcode)); printf("Press and key to halt: "); getch(); exit(1); /* terminate with an error code */ } } void arc::graph() { xm=getmaxx()/2; ym=getmaxy()/2; line (xm, 0, xm, 2 * ym); line (0, ym, 2 * xm, ym); } void arc :: plot 1() { for (i=0;i<n-1;i++) { circle (x1[i]+xm, (-y1[i]+ym), 2); line (x1[i]+xm, (-y1[i]+ym), x[i+1] xm, (-y1[0]+ym)); } line (x1[n-1] +xm, (-y1[n-1]+ym), x1[0]+xm, (-y1[0]+ym)); getch(); } void arc :: plot () { for (i=0;i<n-1;i++) { circle (x[i]+xm, (-y[i]+ym), 2); line (x[i]+xm, (-y[i]+ym), x[i+1] xm, (-y[i+1]+ym)); } circle (x[n-1]+xm, (-y[n-1]+ym),2); line (x[n-1]+xm, (-y[n-1]+ym), x[0]+xm, (-y[0]+ym)); getch(); } void main () { class arc a; clrscr(); a.map(); a.graph(); a.get(); a.cal(); a.plot(); a.plot1(); getch(); } Output Program to clip a line using Liang Barsky Method#include Output Program to implement Standard Perspective Projection in 3-Dimensions.#include<iostream.h> #include<conio.h> #include<graphics.h> #include<math.h> #include<stdio.h> #include<stdlib.h> #define pi 3.14 class per { float x[10], y[10], z [10], d; float x1 [10], y1[10], xm, ym, z1 [10]; int i, k, j, n; public: void get(); void perpro(); void map(); void graph(); void plot1(); } void per::get() { cout<< "\n ENTER OF VERTICES"; cin>>n; cout<<"\n ENTER"; for (i=0;i<n;i++) { cout<<"\n x["?i<<"], y["<<i<<"] and z ["<<i<<"]"; cin>>x[i]>>y[i]>>z[i]; } cout<<"\n ENTER WIDTH FOR Z-AXIS-d"; cin>>d; } void per:: perpro() { for(i=0;i<n;i++) { x1[i]=(d*x[i])/(z[i]+d); y1[i]=(d*y[i])/(z[i]+d); z1[i]=0; } cout<< "\n ENTER PROJECTION, VERTICES OF POLYGON ARE--"; for(i=0;i<n;i++) { cout<<"x?["<<i<<"]="<<x1[i]<< "\t"; cout<<"y?["<<i<<"]="<<y1[i]<< "\t"; cout<<"z?["<<i<<"]="<<z1[i]<< "\t"; cout<<"\n"; } } void per :: map() { int gd=DETECT; initgraph (&gd, &gm, ""); int errorcode = graphresult(); /*an error occurred */ if (errorcode!=grOK) { printf("Graphics error: %s \n",grapherrormsg (errorcode)); printf("Press and key to halt: "); getch(); exit(1); /* terminate with an error code */ } } void per::graph() { xm= get maxx()/2; ym=get maxy()/2 line (xm,0, xm, 2 * ym); line (0, ym, 2 * xm, ym); } void per::plot1() { for(i=0;i<n-1;i++) { line(x1[i]*100+xm,(-y1[i]*100+ym),x1[i+1]*100+xm,(-y1[i+1]*100+ym)); } line(x1[n-1]*100+xm,(-y1[n-1]*100+ym),x1[0]*100+xm,(-y1[0]*100+ym)); getch(); } void main() { class per a; clrscr(); a.map(); a.graph(); a.get(); a.perpro(); a.graph(); a.plot1(); getch(); } Output Program to implement Parallel Projection in 3-Dimensions.#include<iostream.h> #include<conio.h> #include<graphics.h> #include<math.h> #include<stdio.h> #include<stdlib.h> #define pi 3.14 class per { float x[10], y[10], z [10], d, m[10], q1[10], r1[10], m1[10]; float x1 [10], y1[10], xm, ym, z1 [10], cav[4] [4], p[10] [10]; float p1[10] [10]; float a, b, c, ang, theta, f; int i, k, j, n; public: void get(); void par_v(); void par_vnr0(); void map(); void graph(); void project(float m[],float q[], float r[]); }; void per:: perproject(float m[], float q[], float r[]) { cout<<"\n ENTER WIDTH FOR Z-AXIS d"; cin>>d; cout<< "\n AFTER PROJECTION, VERTICES OF POLYGON ARE--"; for(i=0;i<n;i++) { cout<<"x?["<<i<<"]="<<x1[i]<< "\t"; cout<<"y?["<<i<<"]="<<y1[i]<< "\t"; cout<<"z?["<<i<<"]="<<z1[i]<< "\t"; cout<<"\n"; } getch(); clearviewport(); graph(); for(i=0;i<n-1;i++) { line(m[i]*100+xm,(-q[i]*100+ym),m[i+1]*100+xm,(-n1[i+1]*100+ym)); } line(m[n-1]*100+xm,(-q[n-1]*100+ym),m[0]*100+xm,(-q[0]*100+ym)); getch(); } void per::get() { cout<< "\n ENTER OF VERTICES"; cin>>n; cout<<"\n ENTER"; for (i=0;i<n;i++) { cout<<"\n x["?i<<"], y["<<i<<"] and z ["<<i<<"]"; cin>>x[i]>>y[i]>>z[i]; } cout<<"\n ENTER WIDTH FOR Z-AXIS-d"; cin>>d; int ch=100; do { cout<< "\n 1->orthographic projection"; cout<<"\n 2->oblique projection"; cout<<"\n 0-> exit"; cout<<"\n enter ch"; cin>>ch; switch (ch) { case1: int ch1=100; do { cout<<"\n 1->for xy viewplane"; cout<<"\n 2->for yz viewplane"; cout"\n 3->for zx viewplane"; cout<<"\n 0->exit"; cout<<"\n enter ch1"; cin>>ch1; switch(ch1) { case1: x1[i]=x[i]; y1[i]=y[i]; z1[i]=0; project(x1,y1,z1); break; case2: x1[i]=0; y1[i]=0; z1[i]=z[i]; project(x1,y1,z1); break; case3: x1[i]=x[i]; y1[i]=0; z1[i]=z[i]; project(x1,y1,z1); break; } } while (ch!=0) break; case2: ch1=100; do { cout<<"\n 1->on xy plane"; cout<<"\n 2->cavalier"; cout<<"\n 0->exit"; cout<<"\n enter ch1"; cin>>ch1; switch(ch1) { case1: par_v(); break; case2: par_vnr0(); break(); } while(ch!=0); break; } while(ch!=0) } void per::par_v() { cout<<"\n enter v (a, b, c) " ; cin>>a>>b>>c; for(i=0; i<n;i++) { x1[i]=x[i]-((a*z[i]/c); y1[i]=y[i]-((b*z[i]/c); project(x1,y1, z1); } } void per::par_vnr0() { cout<<"\n enter f"; cin>>f; cout<<"\n enter angle"; cin>>angle; theta= ((pi/180)* ang); for(i=0;i<4;i++) { for(j=0;j<4;j++) { if(i==j) cav[i] [j]=1; else cav[i] [j]=0; } } cav[0] [2]=f*cos(theta); cav[1][2]=f*sin (theta); cav[2][2]=0; for(i=0;i<n;i++) { p[0][i]=x[i]; p[1][i]=y[i]; p[2][i]=z[i]; p[3][i]=1; } for(i=0;i<4;i++) { for(j=0;j<n;j++) { p1[i][j]=0; for(k=0;k<4;k++) { p1[i][j]+=cav[i][k]*p[k][j]; } } } for(i=0;i<n;i++) { x1[i]=p1[0][i]; y1[i]=p1[1][i]; z1[i]=p1[i]; } project(x1,y1,z1); } void per :: map() { int gd=DETECT; initgraph (&gd, &gm, ""); int errorcode = graphresult(); /*an error occurred */ if (errorcode!=grOK) { printf("Graphics error: %s \n",grapherrormsg (errorcode)); printf("Press and key to halt: "); getch(); exit(1); /* terminate with an error code */ } } void per::graph() { xm= get maxx()/2; ym=get maxy()/2 line (xm,0, xm, 2 * ym); line (0, ym, 2 * xm, ym); } void main() { class per a; clrscr(); a.map(); a.get(); getch(); } Output Program to draw Sine, Cosine and Tangent Curves#include Output
Next Topic#
|