PROGRAM 1
Aim – Write a program to implement basic
functions
PROGRAM
CODE
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int
gd=DETECT,gm;
initgraph(&gd,&gm,"C:\\TurboC3\\BGI");
setcolor(BLUE);
rectangle(100,200,300,400);
setcolor(GREEN);
circle(190,150,20);
setcolor(GREEN);
line(100,200,190,20);
setcolor(RED);
line(300,200,190,20);
setcolor(YELLOW);
rectangle(220,400,180,300);
setcolor(RED);
line(100,200,190,20);
getch();
closegraph();
}
![]() |
|||
![]() |
PROGRAM 2
Aim – Write a program to implement
Digital Differential Analyzer(DDA) alogorithm
PROGRAM
CODE
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int
gd=DETECT,gm,i;
float
x1,x2,y1,y2,dx,dy,xinc,yinc,step;
clrscr();
initgraph(&gd,&gm,"C:\\TurboC3\\BGI");
printf("\n Enter the starting coordinate ");
scanf("%f%f",&x1,&y1);
printf("\n Enter the end coordinate ");
scanf("%f%f",&x2,&y2);
dx=x2-x1;
dy=y2-y1;
if(dy<dx)
step=dx;
else
step=dy;
xinc=dx/step;
yinc=dy/yinc;
for(i=0;i<step;i++)
{
putpixel(x1,y1,1);
x1=x1+xinc;
y1=y1+yinc;
delay(100);
}
getch();
closegraph();
}
OUTPUT
Enter the starting coordinate
0 425

PROGRAM 3
Aim – Write a program to implement
Bresenham’s Line alogorithm
PROGRAM
CODE
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int
gd=DETECT,gm,i;
float
x1,x2,y1,y2,dx,dy,d;
clrscr();
initgraph(&gd,&gm,"C:\\TurboC3\\BGI");
printf("\n Enter the starting coordinate ");
scanf("%d%d",&x1,&y1);
printf("\n Enter the end coordinate ");
scanf("%d%d",&x2,&y2);
dx=x2-x1;
dy=y2-y1;
d=2*dy-dx;
putpixel(x1,y1,WHITE);
while(x1<=x2)
{
if(d<0)
{
x1=x1+1;
d=d+2*dy;
}
else
{
x1=x1+1;
y1=y1+1;
d=d+2*(dy-dx);
}
putpixel(x1,y1,WHITE)
getch();
closegraph();
}
}
OUTPUT
Enter the starting coordinate
0 425

PROGRAM 4
Aim – Write a program to implement
Mid-Point Circle Alogorithm
PROGRAM
CODE
#include<conio.h>
#include<stdio.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm;
int i,r,x,y,xc,yc;
float d;
clrscr();
initgraph(&gd,&gm,"C:\\TurboC3\\BGI");
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=1.25-r;
x=0;
y=r;
do
{
if(d<0)
{
x=x+1;
d=d+2*x+1;
}
else
{
x=x+1;
y=y-1;
d=d+2*x-2*y+10;
}
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);
}
while(x<y);
getch();
}
OUTPUT
Enter Radius 50
Enter Center of circle 150
150
PROGRAM 5
Aim – Write a program to implement Bresenham’s
Circle Drawing Alogorithm
PROGRAM
CODE
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
void main()
{
int gd=DETECT,gm;
int d,r,x,y,xc,yc;
clrscr();
initgraph(&gd,&gm,"C:\\TurboC3\\BGI");
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;
}
getch();
}
|
OUTPUT
Enter Radius 60
Enter Center of circle 130 130
![]() |
PROGRAM 6
Aim – Write a program to implement
Bresenham’s Ellipse Drawing Alogorithm
PROGRAM
CODE
#include "stdio.h"
#include "conio.h"
#include "math.h"
#include "graphics.h"
main()
{
int gd=DETECT,gm;
int xcenter,ycenter,rx,ry;
int p,x,y,px,py,rx1,ry1,rx2,ry2;
initgraph(&gd,&gm,"C:\\TurboC3\\BGI");
printf("Enter The Radius Value:\n");
scanf("%d%d",&rx,&ry);
printf("Enter The xcenter and ycenter Values:\n");
scanf("%d%d",&xcenter,&ycenter);
ry1=ry*ry;
rx1=rx*rx;
ry2=2*ry1;
rx2=2*rx1;
/* REGION 1 */
x=0;
y=ry;
plotpoints(xcenter,ycenter,x,y);
p=(ry1-rx1*ry+(0.25*rx1));
px=0;
py=rx2*y;
while(px<py)
{
x=x+1;
px=px+ry2;
if(p>=0)
y=y-1;
py=py-rx2;
if(p<0)
p=p+ry1+px;
else
p=p+ry1+px-py;
plotpoints(xcenter,ycenter,x,y);
/* REGION 2*/
p=(ry1*(x+0.5)*(x+0.5)+rx1*(y-1)*(y-1)-rx1*ry1);
while(y>0)
{
y=y-1;
py=py-rx2;
if(p<=0)
{
x=x+1;
px=px+ry2;
}
if(p>0)
p=p+rx1-py;
else
p=p+rx1-py+px;
plotpoints(xcenter,ycenter,x,y);
}
}
getch();
return(0);
}
int plotpoints(int xcenter,int
ycenter,int x,int y)
{
putpixel(xcenter+x,ycenter+y,6);
putpixel(xcenter-x,ycenter+y,6);
putpixel(xcenter+x,ycenter-y,6);
putpixel(xcenter-x,ycenter-y,6);
}
OUTPUT
Enter The Radius
Value(Rx,Ry) : 10 30
Enter The xcenter and ycenter
Values : 300 150
![]() |
No comments:
Post a Comment