Professional Documents
Culture Documents
Java Practical File
Java Practical File
)Write a Program with Menu Option to Input the line Co-ordinates from the user
to Generate a line using Bressenham's method and DDA algorithm
/*Program For Circle Generation Using Bresenham's Algorithm */
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<graphics.h>
int xi,yi,di;
void mh()
/*To Move in Horizontal direction */
{
xi=xi+1;
di=di+(2*xi)+1;
}
void md()
/*To Move in Diagonal direction */
{
xi=xi+1;
yi=yi-1;
di=di+(2*xi)-(2*yi)+2;
}
void mv()
/*To Move in Vertical direction */
{
yi=yi-1;
di=di-(2*yi)+1;
}
void main()
{
int gd,gm,dx,dy,rad,limit,d,d1,xc,yc;
detectgraph(&gd,&gm);
initgraph(&gd,&gm,"c:\\turboc3\\bgi");
printf("\nEnter the Center Co-ordinates of circle Xc & Yc->");
scanf("%d %d",&xc,&yc); printf("\nEnter Radius Of Circle->");
scanf("%d",&rad);
xi=0;
yi=rad;
di=2*(1-rad);
limit=0;
while(yi>=limit)
{
/*Putpixel function to generate the circle in all quadrents */
putpixel(xc+xi,yc+yi,RED);
putpixel(xc+xi,yc-yi,RED);
putpixel(xc-xi,yc+yi,RED);
putpixel(xc-xi,yc-yi,RED);
delay(50);
if(di<0)
{
d=(2*di)+(2*yi)-1;
if(d<0) mh();
else md();
}
else if(di>0)
{
d1=(2*di)-(2*xi)-1;
if(d1<=0) md();
else mv();
}
else if(di==0) md();
}
circle(xc,yc,rad);
getch();
closegraph();
}
Output:
#include <stdio.h>
#include <dos.h>
#include <graphics.h>
void circleBres(int, int, int);
void drawCircle(int, int, int, int);
void main()
{
int xc, yc, r;
int gd = DETECT, gm;
initgraph(&gd, &gm, "");
printf("Enter center coordinates of circle: ");
scanf("%d %d", &xc, &yc);
printf("Enter radius of circle: ");
scanf("%d", &r);
circleBres(xc, yc, r);
getch();
}