PROGRAM NO:-1
AIM:- Write a program to draw a line using Bresenham’s algorithm.
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void lineBRES(int x1,int y1,int x2,int y2)
{
int dx,dy,p;
float x,y,xend;
dx=x2-x1;
dy=y2-y1;
p=2*dy-dx;
if(x2>x1)
{
x=x1;
y=y1;
xend=x2;
}
else
{
x=x2;
y=y2;
xend=x1;
}
putpixel(x,y,2);
while(x<xend)
{
x++;
if(p<0)
p+=2*(dy);
else
{
y++;
p+=2*(dy-dx);
}
putpixel(x,y,2);
}
}
void main()
{
int x1,x2,y1,y2;
int gd=DETECT,gm;
initgraph(&gd,&gm,"C:TCbgi");
printf("Enter the start and end points of line:");
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
lineBRES(x1,y1,x2,y2);
getch();
}
OUTPUT:-
PROGRAM NO:-2
AIM:- Write a program to draw a circle using Bresenham’s algorithm.
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void circleBRES(int x1,int y1,int x2,int y2);
void main()
{
int x1,y1,x2,y2,r,d;
int gd=DETECT,gm;
initgraph(&gd,&gm,"C:TURBOC3BGI");
printf("Enter the center point of circle:");
scanf("%d%d",&x1,&y1);
printf("Enter the radius of the circle:");
scanf("%d",&r);
x2=0;
y2=r;
d=3-2*r;
circleBRES(x1,y1,x2,y2);
while(x2<y2)
{
x2++;
if(d<0)
d+=4*x2+6;
else
{
y2--;
d+=4*(x2-y2)+10;
}
circleBRES(x1,y1,x2,y2);
}
getch();
}
void circleBRES(int x1,int y1,int x2,int y2)
{
putpixel(x1+x2,y1+y2,1);
putpixel(x1-x2,y1+y2,2);
putpixel(x1+x2,y1-y2,3);
putpixel(x1-x2,y1-y2,4);
putpixel(x1+y2,y1+x2,5);
putpixel(x1-y2,y1+x2,6);
putpixel(x1+y2,y1-x2,7);
putpixel(x1-y2,y1-x2,8);
}
OUTPUT:-
PROGRAM NO:-3
Aim:-Write a program to rotate a line about its mid point.
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
#include<math.h>
void main()
{
int gd=DETECT,gm,j,x,y,rad=100;
double i;
initgraph(&gd,&gm,"C:TCbgi");//inintialising graphics driver
x=getmaxx()/2;
y=getmaxy()/2;
while(!kbhit()) {
for(i=0.0;i<=6.28;i+=0.52)
{
cleardevice();
line(x,y+2,x,y-2);
line(x+(rad*cos(i)),y+(rad*sin(i)),x-(rad*cos(i)),y-(rad*sin(i)));
delay(250); }
}
getch();
}
Output:-
PROGRAM NO:-4
Aim:-Write a program to move a circle about circumference of another
circle.
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
#include<math.h>
void main()
{
int gd=DETECT,gm,j,x,y,rad=50;
double i=0.52;
initgraph(&gd,&gm,"C:TURBOC3BGI");//inintialising graphics driver
x=getmaxx()/2;
y=getmaxy()/2;
while(!kbhit())
{
for(i=0.0;i<=6.28;i+=0.52)
{
cleardevice();
circle(x,y,rad);
circle(x+((rad+20)*cos(i)),y+((rad+20)*sin(i)),20);
delay(350);
}
}
getch();
}
Output:-
PROGRAM NO:-5
PROGRAM NO:-5
Aim:-Write a program of translation of text slide.
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm,x,y,i;
initgraph(&gd,&gm,"C:TURBOC3BGI");
x=getmaxx()/2;
y=getmaxy()/2;
setcolor(2);
while(!kbhit())
{
for(i=0;i<getmaxx();i++)
{
cleardevice();
settextstyle(3,0,4);
outtextxy(i,y,"Hello Window");
delay(30);
}
}
getch();
closegraph();
}
Output:-
PROGRAM NO:-6
Aim:-Write a program of flying airplane.
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int x,y,gd=DETECT,gm,i;
initgraph(&gd,&gm,"C:TURBOC3BGI");
for(i=0;i<125;i++)
{
cleardevice();
line(45+350-i,65+150-i,62+350-i,68+150-i);
line(45+350-i,65+150-i,48+350-i,82+150-i);
line(62+350-i,68+150-i,92+350-i,98+150-i);
line(48+350-i,82+150-i,71+350-i,105+150-i);
line(71+350-i,105+150-i,107+350-i,220+150-i);
line(107+350-i,220+150-i,117+350-i,226+150-i);
line(117+350-i,226+150-i,118+350-i,156+150-i);
line(118+350-i,156+150-i,160+350-i,198+150-i);
line(160+350-i,198+150-i,165+350-i,220+150-i);
line(165+350-i,220+150-i,172+350-i,225+150-i);
line(172+350-i,225+150-i,170+350-i,195+150-i);
line(170+350-i,195+150-i,204+350-i,178+150-i);
line(204+350-i,178+150-i,196+350-i,173+150-i);
line(196+350-i,173+150-i,170+350-i,181+150-i);
line(170+350-i,181+150-i,125+350-i,129+150-i);
line(125+350-i,129+150-i,175+350-i,130+150-i);
line(175+350-i,130+150-i,165+350-i,118+150-i);
line(165+350-i,118+150-i,92+350-i,98+150-i);
line(211+350-i,229+150-i,330+350-i,340+150-i);
line(212+350-i,230+150-i,330+350-i,340+150-i);
line(213+350-i,231+150-i,330+350-i,340+150-i);
line(243+350-i,220+150-i,335+350-i,305+150-i);
line(221+350-i,285+150-i,335+350-i,390+150-i);
delay(40);
}
getch();
}
Output:-
PROGRAM NO:-7
Aim:-Write a program of line clipping algorithm (Sutherland).
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<graphics.h>
#include<dos.h>
typedef struct coordinate
{ int x,y;
char code[4];
}PT;
void drawwindow();
void drawline(PT p1,PT p2);
PT setcode(PT p);
int visibility(PT p1,PT p2);
PT resetendpt(PT p1,PT p2);
void main()
{
int gd=DETECT,v,gm;
PT p1,p2,p3,p4,ptemp;
printf("nEnter x1 and y1n");
scanf("%d %d",&p1.x,&p1.y);
printf("nEnter x2 and y2n");
scanf("%d %d",&p2.x,&p2.y);
initgraph(&gd,&gm,"c:TCbgi");
drawwindow();
delay(500);
drawline(p1,p2);
delay(500);
cleardevice();
delay(500);
p1=setcode(p1);
p2=setcode(p2);
v=visibility(p1,p2);
delay(500);
switch(v)
{
case 0: drawwindow();
delay(500);
drawline(p1,p2);
break;
case 1: drawwindow();
delay(500);
break;
case 2: p3=resetendpt(p1,p2);
p4=resetendpt(p2,p1);
drawwindow();
delay(500);
drawline(p3,p4);
break;
}
delay(5000);
closegraph();
}
void drawwindow()
{
line(150,100,450,100);
line(450,100,450,350);
line(450,350,150,350);
line(150,350,150,100);
}
void drawline(PT p1,PT p2)
{
line(p1.x,p1.y,p2.x,p2.y);
}
PT setcode(PT p) //for setting the 4 bit code
{
PT ptemp;
if(p.y<100)
ptemp.code[0]='1'; //Top
else ptemp.code[0]='0';
if(p.y>350)
ptemp.code[1]='1'; //Bottom
else ptemp.code[1]='0';
if(p.x>450)
ptemp.code[2]='1'; //Right
else ptemp.code[2]='0';
if(p.x<150)
ptemp.code[3]='1'; //Left
else ptemp.code[3]='0';
ptemp.x=p.x;
ptemp.y=p.y;
return(ptemp);
}
int visibility(PT p1,PT p2)
{
int i,flag=0;
for(i=0;i<4;i++)
{
if((p1.code[i]!='0') || (p2.code[i]!='0'))
flag=1;
}
if(flag==0)
return(0);
for(i=0;i<4;i++)
{
if((p1.code[i]==p2.code[i]) && (p1.code[i]=='1'))
flag='0';
}
if(flag==0)
return(1);
return(2);
}
PT resetendpt(PT p1,PT p2)
{
PT temp;
int x,y,i;
float m,k;
if(p1.code[3]=='1')
x=150;
if(p1.code[2]=='1')
x=450;
if((p1.code[3]=='1') || (p1.code[2]=='1'))
{
m=(float)(p2.y-p1.y)/(p2.x-p1.x);
k=(p1.y+(m*(x-p1.x)));
temp.y=k;
temp.x=x;
for(i=0;i<4;i++)
temp.code[i]=p1.code[i];
if(temp.y<=350 && temp.y>=100)
return (temp);
}
if(p1.code[0]=='1')
y=100;
if(p1.code[1]=='1')
y=350;
if((p1.code[0]=='1') || (p1.code[1]=='1'))
{
m=(float)(p2.y-p1.y)/(p2.x-p1.x);
k=(float)p1.x+(float)(y-p1.y)/m;
temp.x=k;
temp.y=y;
for(i=0;i<4;i++)
temp.code[i]=p1.code[i];
return(temp);
}
else
return(p1);
}
Output:-
PROGRAM NO:-8
Aim:- Write a program to draw a rainbow.
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
void main()
{
int gd=DETECT,gm,x,y,i,j,r=120;
int c[7]={4,12,14,2,1,8,9};
//char ch[7]={'R','O','Y','G','B','I','V'};
initgraph(&gd,&gm,"C:TCbgi");
x=getmaxx()/2;
y=getmaxy()/2;
for(j=0;j<7;j++)
{
setcolor(c[j]);
for(i=0;i<10;i++)
{
arc(x,y,0,180,r+i);
delay(20);
}
r=r+10;
}
getch();
closegraph();
}
Output:-
PROGRAM NO:-9
Aim:-Write a program for a scene offlying kite.
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
void main()
{
int gd=DETECT,gm,x,y,i;
initgraph(&gd,&gm,"C:TCbgi");
x=0;
y=0;
while(!kbhit())
{
for(i=0;i<345;i++)
{
line(x+100+i,y+100,x+200+i,y+200);
line(x+200+i,y+200,x+100+i,y+300);
line(x+100+i,y+300,x+i,y+200);
line(x+i,y+200,x+100+i,y+100);
line(100+i,200,100,400+(i*0.4));
delay(10);
cleardevice();
}
for(i=345;i>=0;i--)
{
line(x+100+i,y+100,x+200+i,y+200);
line(x+200+i,y+200,x+100+i,y+300);
line(x+100+i,y+300,x+i,y+200);
line(x+i,y+200,x+100+i,y+100);
line(100+i,200,100,400+(i*0.4));
delay(10);
cleardevice();
}
}
getch();
}
Output:-
PROGRAM NO:-10
Aim:-Write a program to translate a line passing from centre of ellipse.
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
#include<math.h>
void main()
{
int gd=DETECT,gm,j,x,y;
int i;
initgraph(&gd,&gm,"C:TCbgi");//inintialising graphics driver
x=getmaxx()/2;
y=getmaxy()/2;
for(i=x-200;i<=x-110;i++)
{
cleardevice();
setfillstyle(6,2);
fillellipse(x,y,30,80);
setfillstyle(0,0);
fillellipse(x,y,2,4);
line(i,y,i+80,y);
if(i==x-110)
{
for(j=0;j<=80;j++)
{
cleardevice();
setfillstyle(6,2);
fillellipse(x,y,30,80);
setfillstyle(0,0);
fillellipse(x,y,2,4);
line(x,y,x+j,y);
line(x-110+j,y,x-30,y);
delay(60);
}
}
delay(60);
}
for(i=x;i<=x+200;i++)
{
cleardevice();
setfillstyle(6,2);
fillellipse(x,y,30,80);
setfillstyle(0,0);
fillellipse(x,y,2,4);
line(i,y,i+80,y);
delay(60);
}
getch();
closegraph();
}
Output:-
PROGRAM NO:-11
Aim:-Write a program for scene ofboat.
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
void background(int x,int y);
void boat(int,int);
void main()
{
int gd=DETECT,gm,x,y,i;
initgraph(&gd,&gm,"C:TCbgi");
x=getmaxx()/2;
y=getmaxy()/2;
background(x,y);
boat(x,y+20);
getch();
closegraph();
}
void boat(int x,int y)
{
int i;
setcolor(6);
for(i=0;i<5;i++)
{
line(x+50,y+i,x-50,y+i);//base line
line(x-50+i,y,x-70+i,y-40); //left side
line(x-70,y-40+i,x+70,y-40+i); //upper part
line(x-20+i,y-40,x+i,y-70);
line(x-i,y-70,x+20-i,y-40);
line(x+70-i,y-40,x+50-i,y);//right side
}
}
void background(int x,int y)
{
int i,j;
for(j=0;j<200;j=j+4)
{
setcolor(11);
outtextxy(0,y+j,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~");
}
}
Output:-

Computer graphics File for Engineers