Nothing Special   »   [go: up one dir, main page]

73 CGA Journal

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 41

SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

COMPUTER GRAPHICS AND ANIMATION


JOURNAL

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

CERTIFICATE

Name: Shaikh Sadiya Mohd Saqib


Class: SYBSCIT DIV: A Roll Number: 35

Branch: Bachelor of Science in Information Technology

This is to certify the work of the student in Bachelor of


Science in Information Technology during the academic
year 2021-22 has been successfully completed.

Examiner’s Sign
Date: 22/01/2022

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Sr.
No.
Practical Date Signature

Practical 1
a. Study and enlist the basic functions used for graphics in C / C++ / Python
language. Give an example for each of them.
02/12/2021
1 b. Draw a co-ordinate axis at the centre of the screen.

2 Practical 2
a. Divide your screen into four region, draw circle, rectangle, ellipse and half
ellipse in each region with appropriate message. b. Draw a simple hut on the
08/12/2021
screen.

3 Practical 3
i. Circle ii. Rectangle iii. Square iv. Concentric Circles v. Ellipse vi. Line 08/12/2021

4 Practical 4
a. Develop the program for DDA Line drawing algorithm.
b. Develop the program for Bresenham’s Line drawing algorithm. 27/01/2022

5 Practical 5
a. Develop the program for the mid-point circle drawing algorithm.
b. Develop the program for the mid-point ellipse drawing algorithm. 02/02/2022

6 Practical 6
a. Write a program to implement 2D scaling. 07/01/2022
b. Write a program to perform 2D translation

7
Practical 7 12/01/2022
a. Perform 2D Rotation on a given object.

8 Practical 8
Write a program to implement Cohen-Sutherland clipping. 02/02/2022

9 Practical 9
a. Write a program to fill a circle using Flood Fill Algorithm. 13/01/2022
b. Write a program to fill a circle using Boundary Fill Algorithm.

10 Practical 10
a. Develop a simple text screen saver using graphics functions.
b. Perform smiling face animation using graphic functions.
c. Draw the moving car on the screen.
19/02/2022

INDEX

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 1a
AIM: - Basic Functions Used For Graphics In C / C++ / Python Language

CODE:-

#include<graphics.h>
#include<conio.h>
void main()
{
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\TURBOC3\\BGI"); bar(50,50,150,150);
bar3d(200,50,300,150,20,1);
arc(400,100,0,130,50);
circle(600,100,50);
rectangle(200,250,450,350);
getch();
closegraph();
}

OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 1b
AIM:- Draw A Co-ordinate Axis At The Center Of The Screen

CODE:-

#include<stdio.h>
#include<conio.h>
#include<graphics.h> void
main()

{
int gd = DETECT, gm; int midx, midy; initgraph(&gd, &gm,

"C:\\TURBOC3\\BGI"); cleardevice();
midx=getmaxx()/2; midy=getmaxy()/2;
line(1,midy,1920,midy); line(midx,1,midx,1080);
getch();
}

OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 2a
AIM:- Divide Your Screen Into Four Region, Draw Circle, Rectangle, Ellipse And Half Ellipse In Each Region

CODE:-

#include<iostream.h>

#include<stdlib.h>

#include<stdio.h>
#include<graphics.h>
int main()
{
int gd,gm;
char a[2];
int x,y;
detectgraph(&gd,&gm);

initgraph(&gd, &gm, "C:\\TURBOC3\\BGI");

x=getmaxx()/2;

y=getmaxx()/2;

line(x,0,x,y); line(0,y,x,y);

line(x,y,getmaxx(),y);

line(x,y,x,getmaxx());
outtext("Circle");
circle(159,120,80); outtextxy(320,0,"Rectangle"); rectangle(360,40,580,200); outtextxy(0,241,"Ellipse");
ellipse(159,360,0,360,50,100); outtextxy(321,241,"Half Ellipse"); ellipse(529,360,0,180,50,100); getch();
return 0; closegraph();

OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 2b
AIM:- Draw A Simple Hut On The Screen

CODE:-

#include<graphics.h>
#include<conio.h>
void main()
{
int gd = DETECT, gm; initgraph(&gd, &gm, "C:\\TURBOC3\\BGI"); setcolor(WHITE);
rectangle(160,200,240,400); rectangle(185,250,215,400); rectangle(240,200,400,400);
line(160,200,200,100); line(200,100,240,200); line(200,100,350,100); line(350,100,400,200);
circle(200,170,15); getch(); closegraph();

OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 3
AIM:- Draw The Basic Shapes In The Centre Of The Screen
i. Circle ii. Rectangle iii. Square iv. Concentric Circles v. Ellipse vi. Line
CODE:-
Circle in Centre of the Screen: -
#include<graphics.h>
#include<conio.h> void main()
{
int gd=DETECT,gm;
int x,y,radius=80;
initgraph(&gd,&gm,"C:\\TC\\BG I");
x=getmaxx()/2; y=getmaxy()/2;
outtextxy(x-100,50,"Circle Using Graphics in C"); circle(x,y,radius); getch();
closegrap
h();
}
OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Rectangle in Centre of the Screen:

#include<graphics.h>

#include<conio.h> void

main()

int gd=DETECT,gm;

initgraph(&gd,&gm,"C:\\TC\\ BGI");

rectangle(150,50,400,150) ;

bar(150,200,400,350);

getch();

closegrap h();

}
OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Concentric Circle in Centre of the Screen:


#include<graphics.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
void main()
{
int rc,rb,xc,yc,i; float x,y;
int gd=DETECT,gm;
initgraph(&gd,&gm,"C:\\TC\\BG I ");
printf("enter the radiusofthe outercircle\n");
scanf("%d",&rc); printf("enter the radius of the inner circle\n");
scanf("%d",&rb);
printf("enter the center of the circle\n");
scanf("%d",&xc);
scanf("%d",&yc); for(i=1;i<=360;i++
)
{
x=xc+(rb*(cos
(i))); y=yc+(rb*(sin
(i))); putpixel(x,y,7);
}
for(i=1;i<=360;i++)
{
x=xc+(rc*(cos(i)));
y=yc+(rc*(sin(i))); putpixel(x,y,7);
}
getch(); closegrap
h();
}
OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Ellipse Circle in Centre of the Screen:


#include<graphics.h>

#include<conio.h>

void main()

{
int gd=DETECT,gm;
int x,y;
initgraph(&gd,&gm,"C:\\TC\\BGI" );
x=getmaxx()/2; y=getmaxy()/2;
outtextxy(x-100,50,"ELLIPSE Using Graphics in C");
ellipse(x,y,0,360,120,60);
getch();
closegraph();
}
OUTPUT:-

Line Circle in Centre of the Screen:


#include<graphics.h>
#include<stdio.h> #include<conio.h> void main()
{

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

int gd=DETECT,gm;
int x1=200,y1=200;
int x2=300,y2=300;
initgraph(&gd,&gm,"C:\\TC\\BGI" );
line(x1,y1,x2,y2);
getch();
closegraph();
}

OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 4a
AIM:- Develop The Program For DDA Line Drawing Algorithm
CODE:-
#include<graphics.h>
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<dos.h>
void main()
{
float x,y,x1,y1,x2,y2,dx,dy,pixel;
int i;
int gd = DETECT, gm;
printf("Enter the value of x1");
scanf("%f",&x1); printf("Enter the value of y1"); scanf("%f",&y1); printf("Enter the value of x2");
scanf("%f",&x2); printf("Enter the value of y2"); scanf("%f",&y2); initgraph(&gd, &gm, "C:\\TURBOC3\\
BGI"); dx=abs(x2-x1); dy=abs(y2y1); if(dx>=dy) pixel=dx; else pixel=dy; dx=dx/pixel; dy=dy/pixel; x=x1; y=y1;
i=1; while(i<=pixel)
{
putpixel(x,y,3); //putpixel(int x, int y, int color) x=x+dx; y=y+dy;
i=i+1; delay(100);
}
getch(); closegraph();
}
OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 4b
AIM:- Develop The Program For Bresenham’s Line Drawing Algorithm
CODE:-
#include<iostream.h>
#include<graphics.h>

void drawline(int x0, int y0, int x1, int y1)


{ int dx, dy, p, x, y;

dx=x1-x0;
dy=y1-y0;

x=x0; y=y0; p=2*dy-dx;


while(x<x1)
{
if(p>=0)
{
putpixel(x,y,7);
y=y+1; p=p+2*dy-2*dx;
} else
{
putpixel(x,y,7);
p=p+2*dy;
}
x=x+1;
}
}
int main()
{
int gdriver=DETECT, gmode, error, x0, y0, x1, y1; initgraph(&gdriver, &gmode, "c:\\turboc3\\
bgi");

cout<<"Enter co-ordinates of first point: ";


cin>>x0>>y0;

cout<<"Enter co-ordinates of second point: ";


cin>>x1>>y1; drawline(x0, y0, x1, y1);

return 0;
}
OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 5a
AIM:- Develop The Program For The Mid-point Circle Drawing Algorithm
CODE:-
#include<iostream.h>
#include<graphics.h>
#include<conio.h> #include<math.h> void main()
{ clrscr(); int r,d,x,y,gd,gm,a,b; cout<<"enter the radius "<<endl; cin>>r; cout<<"enter the center"<<endl;
cin>>a>>b; x=0; y=r;
detectgraph(&gd,&gm); initgraph(&gd,&gm,"C:\\TC\\BGI")
; d=1.25-r; do
{
putpixel(200+x,200+y,RED); putpixel(200+y,200+x,GREEN); putpixel(200+y,200x,BLUE);
putpixel(200+x,200-y,RED); putpixel(200x,200-y,BLUE); putpixel(200-y,200-x,RED);
putpixel(200-y,200+x,YELLOW); putpixel(200x,200+y,RED); putpixel(200+a,200+b,GREEN);
putpixel(200+b,200+a,RED); putpixel(200+b,200a,WHITE); putpixel(200+a,200-b,RED);
putpixel(200a,200-b,WHITE); putpixel(200-b,200-a,RED); putpixel(200-b,200+a,BLUE);
putpixel(200a,200+b,RED);

if (d<0)
{
x=x+1;
y=y;
d=d+2*x+1;
} else
{
x=x+1; y=y-1; d=d+2*(x-
y)+1;
}

} while(x<y); getch();
}
OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 5b
AIM:- Develop The Program For The Mid-point Ellipse Drawing Algorithm
CODE:-
#include<graphics.h>
#include<stdlib.h>
#include<iostream.h> #include<conio.h> void main()
{ clrscr(); int gd = DETECT, gm; int xc,yc,x,y;float p; long rx,ry; initgraph(&gd, &gm, "C:\\TURBOC3\\BGI");
cout<<"Enter coordinates of centre : "; cin>>xc>>yc; cout<<"Enter x,y radius of ellipse: "; cin>>rx>>ry;

//Region 1 p=ry*ryrx*rx*ry+rx*rx/4; x=0;y=ry; while(2.0*ry*ry*x <=


2.0*rx*rx*y)
{ if(p < 0)
{
x++;
p = p+2*ry*ry*x+ry*ry;

} else

{
x++;y--;
p = p+2*ry*ry*x-2*rx*rx*y-ry*ry;

}
putpixel(xc+x,yc+y,YELLOW); putpixel(xc+x,yc-y,YELLOW); putpixel(xc-x,yc+y,YELLOW);
putpixel(xc-x,yc-y,YELLOW);
}

//Region 2 p=ry*ry*(x+0.5)*(x+0.5)+rx*rx*(y-1)*(y-1)-
rx*rx*ry*ry; while(y > 0)
{
if(p <= 0)
{
x++;y--;
p = p+2*ry*ry*x-2*rx*rx*y+rx*rx;

} else

{
y--;
p = p-2*rx*rx*y+rx*rx;
}

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

putpixel(xc+x,yc+y,YELLOW); putpixel(xc+x,ycy,YELLOW); putpixel(xc-x,yc+y,YELLOW);


putpixel(xcx,yc-y,YELLOW);
}
getch(); closegraph();
}
OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 6a
AIM:- Write A Program To Implement 2D Scaling
CODE:-
#include<graphics.h>
#include<stdio.h> #include<conio.h> void main()
{
int x,y,x1,y1,x2,y2; int gd = DETECT, gm; initgraph(&gd, &gm, "C:\\TURBOC3\\BGI"); printf("Enter two line
points:
x1,y1,x2,y2:\n");
scanf("%d%d%d%d",&x1,&y1,&x2,&y2); printf("\nLine before scaling"); line(x1,y1,x2,y2);
printf("\nEnter scaling factors: x,y\n"); scanf("%d%d",&x,&y); x1=(x1*x); y1=(y1*y); x2=(x2*x); y2=(y2*y);
printf("\n\n\nLine after scaling"); line(x1,y1,x2,y2); getch(); closegraph();
}
OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 6b
AIM:- Write A Program To Perform 2D Translation
CODE:-
#include<graphics.h>
#include<stdio.h>
#include<conio.h>
void main()
{
int x,y,x1,y1,x2,y2; int gd = DETECT, gm; initgraph(&gd, &gm, "C:\\TURBOC3\\BGI"); printf("Enter two line
points:
x1,y1,x2,y2:\n"); scanf("%d%d%d%d",&x1,&y1,&x2,&y2); printf("\nLine before translation");
line(x1,y1,x2,y2);
printf("\nEnter translation factors: x,y\n"); scanf("%d%d",&x,&y); x1=(x1+x); y1=(y1+y); x2=(x2+x);
y2=(y2+y); printf("\n\n\nLine after translation"); line(x1,y1,x2,y2); getch(); closegraph();
}
OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 7a
AIM:- Perform 2D Rotation On A Given Object
CODE:-
#include <math.h>
#include <iostream.h>
#include <conio.h>
#include <graphics.h>
void main()
{
int gd=DETECT,gm,x1,x2,y1,y2,x3,y3,x4,y4;
initgraph(&gd,&gm,"C:\\Turboc3\\BGI");
float angle=0,ang; cout<<"\nROTATION OF A LINE\n"; cout<<"Enter the first coordinate of a
line:"; cin>>x1>>y1; cout<<"Enter the second coordinate of a line:"; cin>>x2>>y2;
line(x1,y1,x2,y2);
cout<<"Enter the angle:"; cin>>ang; angle=(ang*3.14)/180; setcolor(YELLOW);
cout<<"\nClockwise Rotation\n";
x3=x2-(((x2-x1)*cos(angle))-((y2-y1)*sin(angle))); y3=y2-(((x2-x1)*sin(angle))+((y2-
y1)*cos(angle))); cout<<"\nAnti-clockwise Rotation"; x4=x2-(((x2x1)*cos(angle))+((y2-
y1)*sin(angle))); y4=y2-(((x2-x1)*sin(angle))+((y2-y1)*cos(angle))); line(x2,y2,x3,y3);
line(x2,y2,x4,y4);
getch();
closegraph();
}
OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 7b
AIM:- Create A House
CODE:-
#include <conio.h>
#include <graphics.h>
#include <stdio.h> // Driver Code void main()
{
int gd =DETECT,gm;
int gdriver = DETECT, gmode; initgraph(&gd,&gm,"C:\\TURBOC3\\BGI");
line(100, 100, 150, 50); line(150, 50, 200, 100);
line(150, 50, 350, 50); line(350, 50, 400, 100);
rectangle(100, 100, 200, 200);
rectangle(200, 100, 400, 200);
rectangle(130, 130, 170, 200);
rectangle(250, 120, 350, 180);
setfillstyle(2, 3);
floodfill(131, 131, WHITE);
floodfill(201, 101, WHITE);
setfillstyle(11, 7);
floodfill(101, 101, WHITE);
floodfill(150, 52, WHITE);
floodfill(163, 55, WHITE);
floodfill(251, 121, WHITE);
getch();
closegraph();
}
OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 8a
AIM:- Write A Program To Implement Cohen-Sutherland Clipping
CODE:-
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gd=DETECT, gm; float i,xmax,ymax,xmin,ymin,x1,y1,x2,y2,m;
float start[4],end[4],code[4];
clrscr();
initgraph(&gd,&gm,"C:\\TURBOC3\\BGI");
printf("\n\tPlease enter the bottom left co-ordinate of viewport: ");
scanf("%f %f",&xmin,&ymin); printf("\n\tPlease enter the top right coordinate of viewport: ");
scanf("%f %f",&xmax,&ymax); printf("\nPlease enter the co-ordinates for starting point of line: ");
scanf("%f %f",&x1,&y1);
printf("\nPlease enter the co-ordinates for ending point of line: ");
scanf("%f %f",&x2,&y2);
for(i=0;i <4;i++)
{
start[i]=0; end[i]=0;
}
m=(y2-y1)/(x2-x1);
if(x1 <xmin) start[0]=1;
if(x1>xmax) start[1]=1;
if(y1 >ymax) start[2]=1;
if(y1<ymin) start[3]=1;
if(x2 <xmin) end[0]=1;
if(x2 >xmax) end[1]=1;
if(y2 >ymax) end[2]=1;
if(y2 <ymin) end[3]=1;
for(i=0;i <4;i++) code[i]=start[i]&&end[i];
if((code[0]==0)&&(code
[1]==0)&&(code[2]==0)
&&(code[3]==0))
{
if((start[0]==0)&&(start[1]==0)&&(start[2]==0)&&(start[3]==0)&&(end[0]==0)&&(end[1]==0)&&(end[2]==0)
&&(end[3]==0)
)

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

{
cleardevice();
printf("\n\t\tThe line is totally visible\n\t\tand not a clipping candidate");
rectangle(xmin,ymin,xmax,ymax);
line(x1,y1,x2,y2);
getch();
}
else
{
cleardevice();
printf("\n\t\tLine is partially visible");
rectangle(xmin,ymin,xmax,ymax);
line(x1,y1,x2,y2);
getch();
if((start[2]==0)&&(start[3]==1))
{
x1=x1+(ymin-y1)/m; y1=ymin;
}
if((end[2]==0)&&(end[3]==1))
{
x2=x2+(ymin-y2)/m; y2=ymin;
}
if((start[2]==1)&&(start[3]==0))
{
x1=x1+(ymax-y1)/m; y1=ymax;
}
if((end[2]==1)&&(end[3]==0))
{
x2=x2+(ymax-y2)/m; y2=ymax;
}
if((start[1]==0)&&(start[0]==1))
{
y1=y1+m*(xmin-x1); x1=xmin;
}
if((end[1]==0)&&(end[0]==1))
{
y2=y2+m*(xmin-x2); x2=xmin;
} if((start[1]==1)&&(start[0]==0))
{
y1=y1+m*(xmax-x1); x1=xmax;
}
if((end[1]==1)&&(end[0]==0))
{

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

y2=y2+m*(xmax-x2); x2=xmax;
}
clrscr();
cleardevice();
printf("\n\t\tAfter clippling:");
rectangle(xmin,ymin,xmax,ymax);
line(x1,y1,x2,y2); getch();
}
}
else
{
clrscr();
clearde vice();
printf(" \nLine is invisibl e");
rectangle(xmin ,ymin,x max,ymax);
}
getch();
closegraph();
}
OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 8b
AIM:- Write A Program To Implement Liang - Barsky Line Clipping Algorithm
CODE:-
#include<iostream.h>
#include<graphics.h>
#include<math.h>
#include<dos.h>

void main()
{
int i,gd=DETECT,gm; int x1,y1,x2,y2,xmin,xmax,ymin,ymax,xx1,xx2,yy1,yy2,dx,dy; float
t1,t2,p[4],q[4],temp; x1=120; y1=120; x2=300; y2=300; xmin=100; ymin=100; xmax=250;
ymax=250; initgraph(&gd,&gm,"c:\\turboc3\\bgi"); rectangle(xmin,ymin,xmax,ymax); dx=x2-x1;
dy=y2-y1; p[0]=-dx; p[1]=dx; p[2]=-dy; p[3]=dy; q[0]=x1-xmin; q[1]=xmax-x1; q[2]=y1-ymin;
q[3]=ymax-y1;
for(i=0;i<4;i++)
{
if(p[i]==0)
{
cout<<"line is parallel to one of the clipping boundary"; if(q[i]>=0)
{ if(i<2)
{
if(y1<ymin)
{
y1=ymin;
}
if(y2>ymax)
{
y2=ymax;
}
line(x1,y1,x2,y2);
} if(i>1)
{
if(x1<xmin)
{
x1=xmin;
}
if(x2>xmax)
{
x2=xmax;
}
line(x1,y1,x2,y2);
}
}
}
}
t1=0; t2=1;

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

for(i=0;i<4;i++)
{
temp=q[i]/p[i]; if(p[i]<0)
{
if(t1<=temp) t1=temp;
} else
{
if(t2>temp) t2=temp;
}
}
if(t1<t2)
{
xx1 = x1 + t1 * p[1]; xx2 = x1 + t2 * p[1]; yy1 = y1 + t1 * p[3]; yy2 = y1 + t2 * p[3];
line(xx1,yy1,xx2,yy2);
}
delay(5000);
closegraph();
}
OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 9a
AIM:- Write A Program To Fill A Circle Using Flood Fill Algorithm
CODE:-
#include<stdio.h>
#include<graphics.h>
#include<dos.h>
void floodFill(int x,int y,int oldcolor,int newcolor)
{
if(getpixel(x,y) == oldcolor)
{
putpixel(x,y,newcolor); floodFill(x+1,y,oldcolor,newcolor);
floodFill(x,y+1,oldcolor,newcolor); floodFill(x-
1,y,oldcolor,newcolor); floodFill(x,y-
1,oldcolor,newcolor);
}
}

//getpixel(x,y) gives the color of specified pixel int main()


{
int gm,gd=DETECT,radius;
int x,y;
printf("Enter x and y positions for circle\n");
scanf("%d%d",&x,&y);
printf("Enter radius of circle\n");
scanf("%d",&radius);
initgraph(&gd,&gm,"c:\\turboc3\\bgi");
circle(x,y,radius);
floodFill(x,y,0,12);
delay(5000);
closegraph();
return 0;
}
OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 9b
AIM:- Write A Program To Fill A Circle Using Boundary Fill Algorithm
CODE:-
#include<iostream.h>
#include<graphics.h>
#include<dos.h>
void boundaryfill(int x,int y,int f_color,int b_color)
{
if(getpixel(x,y)!=b_color && getpixel(x,y)!=f_color)
{
putpixel(x,y,f_color); boundaryfill(x+1,y,f_color,b_color);
boundaryfill(x,y+1,f_color,b_color); boundaryfill(x-1,y,f_color,b_color);
boundaryfill(x,y1,f_color,b_color);
}
}
//getpixel(x,y) gives the color of specified pixel

int main()
{
int gm,gd=DETECT,radius;
int x,y; cout<<"Enter x and y positions for circle\n";
cin>>x>>y; cout<<"Enter radius of circle\n"; cin>>radius; initgraph(&gd,&gm,"c:\\turboc3\\
bgi"); circle(x,y,radius); boundaryfill(x,y,4,15); delay(5000); closegraph();
return 0;
}
OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 10a
AIM:- Develop A Simple Text Screen Saver Using Graphics Functions
CODE:-
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gm,gd=DETECT,x=600;
int i;
initgraph(&gd,&gm,"c:\\turboc3\\bg i");
for(x=0;x<250;x++)
{
x%=250;
//setcolor(random(16));
//circle(random(635),random(70),50);
clearviewport();
settextstyle(1,0,5);
setcolor(YELLOW);
outtextxy(50,415-2*x,"*WORLD*");
setcolor(GREEN);
outtextxy(250,415-2*x,"*OF*");
setcolor(RED);
settextstyle(3,0,5);
outtextxy(350,415- 2*x,"*GRAPHICS*");
}
getch();
closegraph();
}
OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 10b
AIM:- Perform Smiling Face Animation Using Graphic Functions
CODE:-
#include <conio.h>
#include <dos.h>
#include <graphics.h>
#include <stdio.h>
int main()
{
int gr = DETECT, gm;
initgraph(&gr, &gm, "C:\\Turboc3\\BGI");
setcolor(YELLOW); circle(300, 100, 40);
setfillstyle(SOLID_FILL, YELLOW);
floodfill(300, 100, YELLOW);
setcolor(BLACK);
setfillstyle(SOLID_FILL, BLACK);
fillellipse(310, 85, 2, 6);
fillellipse(290, 85, 2, 6);
ellipse(300, 100, 205, 335, 20, 9);
ellipse(300, 100, 205, 335, 20, 10);
ellipse(300, 100, 205, 335, 20, 11);
getch();
closegraph();
return 0;
}
OUTPUT:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

Practical 10c
AIM:- Draw The Moving Car On The Screen
CODE:-
#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, cy20, 40+i, cy-70); line(40+i, cy-70,
100+i, cy-70); line(100+i, cy-70, 115+i, cy20); 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:-

35 SADIYA SHAIKH
SEM IV COMPUTER GRAPHICS AND ANIMATION SYBSCIT

35 SADIYA SHAIKH

You might also like