0% found this document useful (0 votes)
245 views59 pages

CG File

This document contains solutions to 14 computer graphics programs. The programs demonstrate drawing basic shapes like lines, circles and ellipses. They also show string display, nested shapes, coordinate axes, bar charts, pie charts, and scanline algorithms for drawing lines, circles and ellipses. Scanline algorithms demonstrated include DDA, Bresenham and midpoint circle algorithms.

Uploaded by

VisheshAnand
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
245 views59 pages

CG File

This document contains solutions to 14 computer graphics programs. The programs demonstrate drawing basic shapes like lines, circles and ellipses. They also show string display, nested shapes, coordinate axes, bar charts, pie charts, and scanline algorithms for drawing lines, circles and ellipses. Scanline algorithms demonstrated include DDA, Bresenham and midpoint circle algorithms.

Uploaded by

VisheshAnand
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 59

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 1 Draw line, circle, ellipse, arc, sector, bar etc. using functions.
SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void far arc(int x, int y, int stangle, int endangle, int radius);
void far circle(int x,int y, int radius);
void far ellipse(int x, int y, int stangle, int endangle,
int xradius, int yradius);
void far line(int x1, int y1, int x2, int y2);
void far sector(int x, int y, int stangle, int endangle,
int xradius, int yradius);
void far bar(int left, int top, int right, int bottom);
void main()
{
int gdriver=DETECT,gmode,x,y,r;
initgraph(&gdriver,&gmode,"C:\\turboc3\\bgi");
circle(200,200,50);
line(200,100,400,100);
arc(50,100,80,20,40);
sector(200,100,80,50,60,100);
ellipse(100,300,0,360,40,60);
bar(300,100,400,300);
getch();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 1

COMPUTER GRAPHICS PRACTICAL FILE

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 2

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 2 Implementation of functions like nested circle, nested rectangle.


SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void far circle(int x,int y, int radius);
void far rectangle(int left, int top, int right, int bottom);
void main()
{
int gdriver=DETECT,gmode,x,y,r;
initgraph(&gdriver,&gmode,"C:\\turboc3\\bgi");
circle(200,200,50);
circle(200,200,30);
rectangle(300,400,380,350);
rectangle(320,380,360,370);
rectangle(310,390,370,360);
getch();}

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 3

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 3 Display a string Computer Graphics in the center of the


screen
SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm;
clrscr();
initgraph(&gd,&gm,"C:\\turboc3\\bgi");
outtextxy(getmaxx()/2,getmaxy()/2,"COMPUTER GRAPHICS");
getch();
}

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 4

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 4 Draw an asterisk on screen


SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void far line(int x1, int y1, int x2, int y2);
void main()
{
int gdriver=DETECT,gmode,x,y;
initgraph(&gdriver,&gmode,"C:\\turboc3\\bgi");
line(200,200,400,400);
line(400,200,200,400);
line(300,200,300,400);
line(200,300,400,300);
getch();}

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 5

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 5 Display an asterisk inside a circle


SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gdriver=DETECT,gmode,x,y;
initgraph(&gdriver,&gmode,"C:\\turboc3\\bgi");
line(200,200,400,400);
line(400,200,200,400);
line(300,160,300,440);
line(160,300,440,300);
circle(300,300,140);
getch();}

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 6

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 6 Display coordinate axis.


SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gdriver=DETECT,gmode,a,b,i;
initgraph(&gdriver,&gmode,"C:\\turboc3\\bgi");
a=getmaxx();
b=getmaxy();
line(a/2,b,a/2,0);
line(0,b/2,a,b/2);
outtextxy(getmaxx()/100,getmaxy()/2,"X-axis");
outtextxy(getmaxx()/2,getmaxy()/20,"Y-axis");
for(i=0;i<a;i+=20)
{
line(a/2+i,b/2-10,a/2+i,b/2+10);
line(a/2-i,b/2+10,a/2-i,b/2-10);
line(a/2+10,b/2-i,a/2-10,b/2-i);
line(a/2+10,b/2+i,a/2-10,b/2+i);
}
getch();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 7

COMPUTER GRAPHICS PRACTICAL FILE

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 8

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 7 Make bar chart for students for five years


SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void far bar(int left, int top, int right, int bottom);
void main()
{
int gdriver=DETECT,gmode;
initgraph(&gdriver,&gmode,"C:\\turboc3\\bgi");
line(100,300,400,300);
line(100,50,100,300);
bar(150,60,190,300);
bar(200,100,240,300);
bar(250,150,290,300);
bar(300,100,340,300);
bar(350,150,390,300);
outtextxy(100,45,"AGE");
outtextxy(400,300,"YEAR");
getch();
}OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 9

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 8 Make pie chart for students.


SOLUTION:
#include<conio.h>
#include<stdio.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm;
int i;
initgraph(&gd,&gm,"C:\\TURBOC3\\BGI" );
outtextxy(250,70,"PIE CHART");
setfillstyle(2,YELLOW);
pieslice(300,250,0,90,80);
floodfill(300,250,WHITE);
setfillstyle(1,BROWN);
pieslice(300,250,45,90,80);
floodfill(300,250,WHITE);
setfillstyle(5,BLUE);
pieslice(300,250,500,90,80);
floodfill(300,250,WHITE);
setfillstyle(6,RED);
pieslice(300,250,600,90,80);
floodfill(300,250,WHITE);
setfillstyle(2,GREEN);
pieslice(300,250,270,190,80);
floodfill(300,250,WHITE);
setfillstyle(7,CYAN);
pieslice(300,250,250,360,80);
floodfill(300,250,WHITE);
getch();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 10

COMPUTER GRAPHICS PRACTICAL FILE

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 11

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 9 Scan convert line using DDA algorithm


SOLUTION:
#include<math.h>
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int x1,y1,x2,y2,len,dx,dy,x,y,i;
int gd=DETECT,gm;
initgraph(&gd,&gm,"C:\\Turboc3\\bgi");
printf("enter x1,y1,x2,y2 coordiante:\n");
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
if (abs(x2-x1)>=abs(y2-y1))
{
len=abs(y2-y1);
}
else
{
len=abs(y2-y1);
dx=(x2-x1)/len;
dy=(y2-y1)/len;
x=x1+0.5;
y=y1+0.5;
i=1;
}
while(i<=len)
{
putpixel(x,y,YELLOW);
x=x+dx;
y=y+dy;
i=i+1;
}
getch();
closegraph();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 12

COMPUTER GRAPHICS PRACTICAL FILE

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 13

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 10 Scan convert line using Bresenham algorithm.


SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int dx,dy,x,y,p,x1,y1,x2,y2;
int gd=DETECT,gm;
printf("enter the coordinate of first point");
scanf("%d%d",&x1,&x2);
printf("enter the coordinate of second point");
scanf("%d%d",&x2,&y2);
dx=x2-x1;
dy=y2-y1;
p=2*(dy)-(dx);
x=x1;
y=y1;
initgraph(&gd,&gm,"C:\\Turboc3\\bgi");
putpixel(x,y,WHITE);
while(x<=x2)
{
if(p<0)
{
x=x+1;
y=y;
p=p+2*(dy);
}
else
{
x=x+1;
y=y+1;
p=p+2*(dy);
p=p+2*(dy-dx);
}
putpixel(x,y,YELLOW);
}
getch();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 14

COMPUTER GRAPHICS PRACTICAL FILE

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 15

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 11 Scan convert circle using mid-point algorithm.


SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm;
int i,x,y,r,xc,yc,p;
initgraph(&gd,&gm,"C:\\Turboc3\\bgi");
printf("enter a radius:");
scanf("%d",&r);
printf("enter two values center of circle:");
scanf("%d%d",&xc,&yc);
p=1-r;
x=0;
y=r;
do
{
if(p<0)
{
x=x+1;
p=p+2*x+1;
}
else
{
x=x+1;
y=y-1;
p=p+2*x-2*y+10;
}
putpixel(xc+x,yc+y,10);
putpixel(xc-y,yc-x,56);
putpixel(xc+y,yc-x,30);
putpixel(xc-y,yc+x,54);
putpixel(xc+y,yc+x,60);
putpixel(xc-x,yc-y,70);
putpixel(xc+x,yc-y,80);
putpixel(xc-x,yc+y,90);
}while(x<y);
getch();
Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 16

COMPUTER GRAPHICS PRACTICAL FILE


}

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 17

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 12 Scan convert circle using Bresenham algorithm.


SOLUTION:
#include<conio.h>
#include<stdio.h>
#include<stdio.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm;
int d,r,x,y,xc,yc;
clrscr();
initgraph(&gd,&gm,"c:\\tc\\");
printf("Enter Radius\n");
scanf("%d",&r);
printf("Enter Center of circle\n");
scanf("%d",&xc);
scanf("%d",&yc);
d=3-2*r;
x=0;
y=r;
while(x<=y)
{
putpixel(xc+x,yc+y,5);
putpixel(xc-y,yc-x,5);
putpixel(xc+y,yc-x,5);
putpixel(xc-y,yc+x,5);
putpixel(xc+y,yc+x,5);
putpixel(xc-x,yc-y,5);
putpixel(xc+x,yc-y,5);
putpixel(xc-x,yc+y,5);
if(d<=0)
{
d=d+4*x+6;
}
else
{
d=d+4*x-4*y+10;
y=y-1;
}
x=x+1;
Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 18

COMPUTER GRAPHICS PRACTICAL FILE


}
getch();
}

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 19

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 13 Scan convert circle using Trignometric and Polynomial


method.
SOLUTION:
Using Trignometric Method
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
void main()
{
int gd=DETECT,gm;
int x,y,r,angle,xc,yc;
initgraph(&gd,&gm,"C:\\TURBOC3\\BGI");
x=0;
y=r;
angle=0;
printf("enter x,y coordiante and radius:\n");
scanf("%d%d%d",&xc,&yc,&r);
while(angle<=360)
{
putpixel(xc+x,yc+y,6);
x=r*cos(angle);
y=r*sin(angle);
angle=angle+1;
}
getch();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 20

COMPUTER GRAPHICS PRACTICAL FILE

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 21

COMPUTER GRAPHICS PRACTICAL FILE

Using Polynomial Method


#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm;
int x,y,r,xc,yc;
initgraph(&gd,&gm,"C:\\turboc3\\bgi");
x=0;
printf("Enter x-coordinate and y-coordinate:");
scanf("%d%d",&xc,&yc);
printf("Enter radius:");
scanf("%d",&r);
y=r;
while(x<=y)
{
putpixel(xc+x,yc+y,4);
putpixel(xc+y,yc+x,4);
putpixel(xc-x,yc+y,4);
putpixel(xc-y,yc+x,4);
putpixel(xc-y,yc-x,4);
putpixel(xc-x,yc-y,4);
putpixel(xc+x,yc-y,4);
putpixel(xc+y,yc-x,4);
x=x+1;
y=sqrt(r*r-x*x);
}
getch();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 22

COMPUTER GRAPHICS PRACTICAL FILE

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 23

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 14 Scan convert ellipse using Mid Point Algorithm


SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
void disp();
float x,y;
int xc,yc;
void main()
{
int gd=DETECT,gm;
int a,b;
float p1,p2;
clrscr();
initgraph(&gd,&gm,"");
scanf("%d%d",&xc,&yc);
scanf("%d%d",&a,&b);
x=0;y=b;
disp();
p1=(b*b)-(a*a*b)+(a*a)/4;
while((2.0*b*b*x)<=(2.0*a*a*y))
{
x++;
if(p1<=0)
p1=p1+(2.0*b*b*x)+(b*b);
else
{
y--;
p1=p1+(2.0*b*b*x)+(b*b)-(2.0*a*a*y);
}
disp();
x=-x;
disp();
x=-x;
}
x=a;
y=0;

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 24

COMPUTER GRAPHICS PRACTICAL FILE


disp();
p2=(a*a)+2.0*(b*b*a)+(b*b)/4;
while((2.0*b*b*x)>(2.0*a*a*y))
{
y++;
if(p2>0)
p2=p2+(a*a)-(2.0*a*a*y);
else
{
x--;
p2=p2+(2.0*b*b*x)-(2.0*a*a*y)+(a*a);
}
disp();
y=-y;
disp();
y=-y;
}
getch();
closegraph();
}
void disp()
{
putpixel(xc+x,yc+y,10);
putpixel(xc-x,yc+y,10);
putpixel(xc+x,yc-y,10);
putpixel(xc+x,yc-y,10);
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 25

COMPUTER GRAPHICS PRACTICAL FILE


OUTPUT:

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 26

COMPUTER GRAPHICS PRACTICAL FILE


PROGRAM 15 Cohen Sutherland Algorithm
SOLUTION:
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
typedef unsigned int outcode;
enum { TOP=0x1, BOTTOM=0x2, RIGHT=0x4, LEFT=0x8 };
void lineclip(x0,y0,x1,y1,xwmin,ywmin,xwmax,ywmax )
float x0,y0,x1,y1,xwmin,ywmin,xwmax,ywmax;
{
int gd,gm;
outcode code0,code1,codeout;
int accept = 0, done=0;
code0 = calcode(x0,y0,xwmin,ywmin,xwmax,ywmax);
code1 = calcode(x1,y1,xwmin,ywmin,xwmax,ywmax);
do{
if(!(code0 | code1))
{ accept =1 ; done =1; }
else
if(code0 & code1) done = 1;
else
{
float x,y;
codeout = code0 ? code0 : code1;
if(codeout & TOP)
{
x = x0 + (x1-x0)*(ywmax-y0)/(y1-y0);
y = ywmax;
}
else
if( codeout & BOTTOM)
{
x = x0 + (x1-x0)*(ywmin-y0)/(y1-y0);
y = ywmin;
}
else
if ( codeout & RIGHT)
{

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 27

COMPUTER GRAPHICS PRACTICAL FILE


y = y0+(y1-y0)*(xwmax-x0)/(x1-x0);
x = xwmax;
}
else
{
y = y0 + (y1-y0)*(xwmin-x0)/(x1-x0);
x = xwmin;
}
if( codeout == code0)
{
x0 = x; y0 = y;
code0=calcode(x0,y0,xwmin,ywmin,xwmax,ywmax);
}
else
{
x1 = x; y1 = y;
code1 = calcode(x1,y1,xwmin,ywmin,xwmax,ywmax);
}
}
} while( done == 0);
if(accept) line(x0,y0,x1,y1);
rectangle(xwmin,ywmin,xwmax,ywmax);
getch();
}
int calcode (x,y,xwmin,ywmin,xwmax,ywmax)
float x,y,xwmin,ywmin,xwmax,ywmax;
{
int code =0;
if(y> ywmax)
code |=TOP;
else if( y<ywmin)
code |= BOTTOM;
else if(x > xwmax)
code |= RIGHT;
else if ( x< xwmin)
code |= LEFT;
return(code);
}
main()
{

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 28

COMPUTER GRAPHICS PRACTICAL FILE


float x2,y2,x1,y1,xwmin,ywmin,xwmax,ywmax;
int gd=DETECT,gm;
clrscr();
initgraph(&gd,&gm,"e:\\tc\\bgi");
printf("\n\n\tEnter the co-ordinates of Line :");
printf("\n\n\tX1 Y1 : ");
scanf("%f %f",&x1,&y1);
printf("\n\n\tX2 Y2 : ");
scanf("%f %f",&x2,&y2);
printf("\n\tEnter the co_ordinates of window :\n ");
printf("\n\txwmin , ywmin : ");
scanf("%f %f",&xwmin,&ywmin);
printf("\n\txwmax , ywmax : ");
scanf("%f %f",&xwmax,&ywmax);
clrscr();
line(x1,y1,x2,y2);
rectangle(xwmin,ywmin,xwmax,ywmax);
getch();
clrscr();
lineclip(x1,y1,x2,y2,xwmin,ywmin,xwmax,ywmax );
getch();
closegraph();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 29

COMPUTER GRAPHICS PRACTICAL FILE

Output:-

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 30

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 16 Get the translation vector from the user and translate the
triangle accordingly.
SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
intgd=DETECT,gm;
int x1,y1,x2,y2,x3,y3,tx,ty;
initgraph(&gd,&gm,"C:\\turboc3\\bgi");
printf("Enter the coordinates:");
scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3);
line(x1,y1,x2,y2);
line(x2,y2,x3,y3);
line(x3,y3,x1,y1);
printf("Enter the Translate vectors:");
scanf("%d%d",&tx,&ty);
x1=x1+tx;
y1=y1+ty;
x2=x2+tx;
y2=y2+ty;
x3=x3+tx;
y3=y3+ty;
line(x1,y1,x2,y2);
line(x2,y2,x3,y3);
line(x3,y3,x1,y1);
getch();
closegraph();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 31

COMPUTER GRAPHICS PRACTICAL FILE

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 32

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 17 Get the rotation angle from the user and rotate the triangle
accordingly.
SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
void main()
{
int gd=DETECT,gm;
int x1,y1,x2,y2,x3,y3;
float r,t;
initgraph(&gd,&gm,"C://Turboc3//BGI");
printf("enter lines coordiante:");
scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3);
line(x1,y1,x2,y2);
line(x2,y2,x3,y3);
line(x3,y3,x1,y1);
printf("enter the angle of rotation:");
scanf("%f",&r);
t=r*(3.14)/180;
x1=abs(x1*cos(t)-y1*sin(t));
y1=abs(x1*sin(t)+y1*cos(t));
x2=abs(x2*cos(t)-y2*sin(t));
y2=abs(x2*sin(t)+y2*cos(t));
x3=abs(x3*cos(t)-y3*sin(t));
y3=abs(x3*sin(t)+y3*cos(t));
line(x1,y1,x2,y2);
line(x2,y2,x3,y3);
line(x3,y3,x1,y1);
getch();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 33

COMPUTER GRAPHICS PRACTICAL FILE

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 34

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 18 Get the scaling factor from the user and scale the triangle
accordingly.
SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm;
int x1,y1,x2,y2,x3,y3,tx,ty,tz;
initgraph(&gd,&gm,"C://Turboc3//BGI");
printf("enter lines coordiante:");
scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3);
printf("line as ************* follow\n");
line(x1,y1,x2,y2);
line(x2,y2,x3,y3);
line(x3,y3,x1,y1);
printf("enter the translation vector:\n");
scanf("%d%d",&tx,&ty);
x1=x1*tx;
y1=y1*ty;
x2=x2*tx;
y2=y2*ty;
x3=x3*tx;
y3=y3*ty;
printf("inital line is");
line(x1,y1,x2,y2);
line(x2,y2,x3,y3);
line(x3,y3,x1,y1);
getch();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 35

COMPUTER GRAPHICS PRACTICAL FILE

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 36

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 19 Program to implement reflection on a point,line.


SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
void main()
{
intgd=DETECT,gm;
int x1,y1,x2,y2;
int a;
initgraph(&gd,&gm,"C:\\TURBOC3\\BGI");
printf("Enter coordinates of first vertex :");
scanf("%d %d",&x1,&y1);
printf("Enter coordinates of second vertex :");
scanf("%d %d",&x2,&y2);
line(x1,y1,x2,y2);
line(320,0,320,500);
line(0,240,640,240);
printf("Enter the angle of reflection:");
scanf("%d",&a);
if(a=1)
{
line(x1,y1+240,x2,y2+240);
}
else
{
if(a=2)
{
line(x1+320,y1,x2+320,y2);
}
}
printf("Line after reflection");
getch();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 37

COMPUTER GRAPHICS PRACTICAL FILE

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 38

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 20 Program to implement shearing on a line.


SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
intgd=DETECT,gm;
int x1,y1,x2,y2,x,y;
initgraph(&gd,&gm,"C:\\Turboc3\\bgi");
printf("Enter x1, y1, x2 & y2: ");
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
line(x1,y1,x2,y2);
printf("Enter shearing value for x & y:");
scanf("%d%d",&x,&y);
printf("shearing about x axis\n");
line(x1,y1,x2*x,y2);
printf("shearing about y axis");
line(x1,y1,x2,y2*y);
getch();
}

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 39

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 21 To design flying colored balloons.


SOLUTION:
#include<conio.h>
#include<stdio.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm;
int i;
initgraph(&gd,&gm,"C:\\TURBOC3\\BGI" );
for(i=1;i<=250;i++)
{
cleardevice();
setfillstyle(5,BROWN);
circle(130,300-i,40);
line(130,340-i,130,450-i);
floodfill(130,300-i,WHITE);
setfillstyle(2,RED);
circle(300,300-i,40);
line(300,340-i,300,450-i);
floodfill(300,300-i,WHITE);
setfillstyle(3,BLUE);
circle(500,300-i,40);
line(500,340-i,500,450-i);
floodfill(500,300-i,WHITE);
delay(60);
}
getch();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 40

COMPUTER GRAPHICS PRACTICAL FILE

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 41

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 22 program to perform Sunrise and sunset


SOLUTION:
#include<conio.h>
#include<stdio.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm;
int i;
initgraph(&gd,&gm,"C:\\TURBOC3\\BGI" );
for(i=1;i<=150;i++)
{
cleardevice();
line(150,5,30,200);
setfillstyle(1,YELLOW);
circle(230,100-i,40);
floodfill(230,100-i,WHITE);
line(150,5,220,200);
line(350,5,220,200);
line(350,5,410,220);
line(550,5,410,220);
line(550,5,610,220);
delay(60);
}
for(i=1;i<=80;i++)
{
cleardevice();
line(150,5,30,200);
setfillstyle(2,YELLOW);
circle(230,10+i,40);
floodfill(230,10+i,WHITE);
line(150,5,220,200);
line(350,5,220,200);
line(350,5,410,220);
line(550,5,410,220);
line(550,5,610,220);
delay(60);
}
getch();
Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 42

COMPUTER GRAPHICS PRACTICAL FILE


}

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 43

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 23 program to perform Moving vehicle.


SOLUTION:
#include<stdio.h>
#include<graphics.h>
void main()
{
int i;
int gd=DETECT,gm;
initgraph(&gd,&gm,"c:\\TURBOC3\\bgi");
outtextxy(25,240,"PRESS ANY KEY TO VIEW MOVING CAR");
getch();
for(i=0;i<=350;i++)
{
cleardevice();
line(30+i,275,300+i,275);
setfillstyle(1,RED);
circle(60+i,300,25);
floodfill(60+i,300,WHITE);
setfillstyle(1,6);
circle(270+i,300,25);
floodfill(270+i,300,WHITE);
line(30+i,275,80+i,190);
line(80+i,190,200+i,190);
line(200+i,190,300+i,275);
line(58+i,230,247+i,230);
line(200+i,190,200+i,230);
line(100+i,190,100+i,230);
delay(20);
}
getch();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 44

COMPUTER GRAPHICS PRACTICAL FILE

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 45

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 24 Show the reflection of a triangle.


SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<stdlib.h>
void main()
{
int gd=DETECT,gm;
int x1,y1,x2,y2,x3,y3;
int c;
initgraph(&gd,&gm,"C://Turboc3//BGI");
printf("enter lines coordiante:");
scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3);
line(x1,y1,x2,y2);
line(x2,y2,x3,y3);
line(x3,y3,x1,y1);
line(320,0,320,430);
line(0,240,640,240);
printf("enter the axis of reflection:");
scanf("%d",&c);
if(c=1)
{
line(x1,y1+240,x2,y2+240);
line(x2,y2+240,x3,y3+240);
line(x3,y3+240,x1,y1+240);
}
else
if(c=2)
{
line(x1+320,y1,x2+320,y2);
line(x2+320,y2,x3+320,y3);
line(x3+320,y3,x1+320,y1);
}
printf("\ntriangle after reflection");
getch();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 46

COMPUTER GRAPHICS PRACTICAL FILE

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 47

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 25 Perform a shearing transformation on a rectangle.


SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm;
int x1,y1,x2,y2,x,y;
initgraph(&gd,&gm,"C://Turboc3//BGI");
printf("enter lines coordiante:");
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
rectangle(x1,y1,x2,y2);
printf("enter the shearing value:");
scanf("%d%d",&x,&y);
printf("shearing about x-axis");
rectangle(x1,y1,x2*x,y2);
printf("\nshearing about y-axis");
rectangle(x1,y1,x2,y2*y);
getch();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 48

COMPUTER GRAPHICS PRACTICAL FILE

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 49

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 26 program to perform View of a city.


SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm;
int i;
initgraph(&gd,&gm,"C:\\turboc3\\bgi");
setfillstyle(1,YELLOW);
circle(330,30,25);
floodfill(330,30,WHITE);
line(40,320,100,320);
line(10,370,140,370);
line(40,320,30,340);
line(100,320,110,340);
line(10,340,140,340);
line(10,340,10,370);
line(140,340,140,370);
circle(35,370,10);
circle(35,370,15);
line(10,385,800,385);
circle(110,370,10);
circle(110,370,15);
line(10,350,800,350);
line(10,450,800,450);
line(600,350,600,100);
line(460,350,460,100);
line(600,100,460,100);
rectangle(550,150,580,120);
rectangle(480,150,510,120);
rectangle(550,250,580,220);
rectangle(480,250,510,220);
rectangle(550,350,580,320);
rectangle(480,350,510,320);
line(300,350,300,200);
line(300,200,460,200);
rectangle(300,350,150,10);
Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 50

COMPUTER GRAPHICS PRACTICAL FILE


rectangle(190,150,250,30);
rectangle(190,350,250,220);
rectangle(350,350,420,250);
rectangle(480,150,510,120);
rectangle(550,250,580,220);
rectangle(480,250,510,220);
rectangle(550,350,580,320);
rectangle(480,350,510,320);
getch();
}

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 51

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 27 Traffic signal with road


SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"C://Turboc3//BGI");
line(40,320,100,320);
line(10,370,140,370);
line(40,320,30,340);
line(100,320,110,340);
line(10,340,140,340);
line(10,340,10,370);
line(140,340,140,370);
circle(35,370,10);
circle(35,370,15);
line(10,385,800,385);
circle(110,370,10);
circle(110,370,15);
line(10,350,800,350);
line(10,450,800,450);
rectangle(540,100,470,250);
setfillstyle(2,RED);
circle(500,125,20);
floodfill(500,125,WHITE);
setfillstyle(2,YELLOW);
circle(500,175,20);
floodfill(500,175,WHITE);
setfillstyle(2,GREEN);
circle(500,225,20);
floodfill(500,225,WHITE);
line(500,250,500,400);
getch();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 52

COMPUTER GRAPHICS PRACTICAL FILE

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 53

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 28 program to perform Accident Scene


SOLUTION:
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
void main()
{
int i;
int gd=DETECT,gm;
initgraph(&gd,&gm,"c:\\TURBOC3\\bgi");
outtextxy(100,45,"PRESS ANY KEY TO VIEW THE ACCIDENT");
getch();
for(i=0;i<=250;i++)
{
cleardevice();
line(30+i,275,300+i,275);
circle(60+i,300,25);
circle(270+i,300,25);
line(30+i,275,80+i,190);
line(80+i,190,200+i,190);
line(200+i,190,300+i,275);
line(58+i,230,247+i,230);
line(200+i,190,200+i,230);
line(100+i,190,100+i,230);
line(550,50,550,450);
delay(10);
}
outtextxy(560,260,"BOOM!!!!");
setfillstyle(1,RED);
circle(590,270,40);
floodfill(590,270,WHITE);
getch();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 54

COMPUTER GRAPHICS PRACTICAL FILE

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 55

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 29 Program to perform Flight scene


SOLUTION:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm;
int i;
clrscr();
initgraph(&gd,&gm,"C:\\turboc3\\bgi");
for(i=0;i<=160;i++)
{
cleardevice();
line(250+i,200,140+i,200);
line(280+i,230,100+i,230);
line(300+i,250,100+i,250);
line(100+i,150,100+i,250);
line(100+i,150,140+i,200);
line(250+i,200,300+i,250);
rectangle(160+i,225,140+i,210);
rectangle(200+i,225,180+i,210);
rectangle(240+i,225,220+i,210);
circle(115+i,190,10);
delay(30);
}
getch();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 56

COMPUTER GRAPHICS PRACTICAL FILE

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 57

COMPUTER GRAPHICS PRACTICAL FILE

PROGRAM 30 Program to perform Kite flying


SOLUTION:
#include<conio.h>
#include<stdio.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm;
int i;
initgraph(&gd,&gm,"C:\\TURBOC3\\BGI" );
delay(100);
for(i=0;i<=100;i++)
{
cleardevice();
line(100,200-i,200,300-i);
line(200,100-i,200,300-i);
line(100,200-i,300,200-i);
line(300,200-i,200,300-i);
line(200,100-i,300,200-i);
line(100,200-i,200,100-i);
line(200,300-i,150,350-i);
line(200,300-i,250,350-i);
line(150,350-i,250,350-i);
circle(200,200-i,70);
delay(50);
}
getch();
}

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 58

COMPUTER GRAPHICS PRACTICAL FILE

OUTPUT

Name : Harmeet Singh

Enrollment No. : 05024402012

Page No. : 59

You might also like