Professional Documents
Culture Documents
3
Student Name: Naman Chahal UID: 19BCS1522
Branch: BE-CSE Section/Group: CSE 3B
Semester: 5 Date of Performance: 12-10-21
Subject Name: Computer Graphics Lab Subject Code: CSP-305
To draw a circle with a given center and radius using midpoint circle algorithm.
To draw a circle with a given center and radius using circle generator algorithm.
2. Code Screenshots
Mid-point circle algorithm
#include<iostream.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
void circleplotpoint(int, int, int, int);
void circlemidpoint(int xc, int yc, int r)
{
int x=0, y=r;
int p=(1-r);
circleplotpoint(xc,yc,x,y);
while(x<y)
{
x++;
if(p<0)
p=p+2*x+1;
else
{
y--;
p=p+2*(x-y)+1;
}
circleplotpoint(xc,yc,x,y);
}
}
void circleplotpoint( int xc, int yc, int x, int y)
{
putpixel(xc+x , yc+y, 15);
putpixel(xc-x , yc+y, 14);
putpixel(xc+x , yc-y, 13);
putpixel(xc-x , yc-y, 12);
putpixel(xc+y , yc+x, 11);
putpixel(xc-y , yc+x, 10);
putpixel(xc+y , yc-x, 9);
putpixel(xc-y , yc-x, 8);
}
void main(){
int gd=DETECT, gm, a,b,c;
clrscr();
initgraph(&gd,&gm, "c:\\turboc3\\bgi");
cout<<"Enter origin coordinates: "<<endl;
cin>>a>>b;
cout<<"Enter radius: "<<endl;
cin>>c;
putpixel(a,b,15);
circlemidpoint(a,b,c);
getch();
}
Circle generator algorithms - Polynomial method
#include<iostream.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
#include<dos.h>
void circleplotpoint(int, int, int, int);
void circlepoly( int xc, int yc, int r){
int x=0, y=r;
float xend = r/1.414;
while (x<=xend)
{
y= sqrt((r*r)-(x*x));
circleplotpoint(xc,yc,x,y);
x++;
// #delay(20);
}
}
void circleplotpoint(int xc, int yc, int x, int y){
putpixel(xc+x, yc+y, 15);
putpixel(xc-x, yc+y, 14);
putpixel(xc+x, yc-y, 13);
putpixel(xc-x, yc-y, 12);
putpixel(xc+x, yc+x, 11);
putpixel(xc-x, yc+x, 10);
putpixel(xc+x, yc-x, 9);
putpixel(xc-x, yc-x, 8);
}
void main(){
int gd=DETECT, gm, a,b,c;
clrscr();
initgraph(&gd,&gm, "c:\\turboc3\\bgi");
cout<<"Enter origin coordinates: "<<endl;
cin>>a>>b;
cout<<"Enter radius: "<<endl;
cin>>c;
putpixel(a,b,15);
circlepoly(a,b,c);
getch();
}
Trigonometric method
#include<iostream.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
#include<dos.h>
#define round(a) ((int) (a+0.5))