Without using ellipse function in graphics draw the ellipse. By using Bresenhams algorithm .The main object in the algorithm is to perform analyse and manipulate linear equation so integer arithmetic is used in the calculations.Integer Arithmetic has the advantages of speed and precision; working with floating point values requires more time and it is difficult one and memory and such values would need to be rounded to integers anyway. In this article we assign the more difficult problem of approximating the plot of an ellipse on a grid of discrete pixels, using only

integer arithmetic. | CS1355-Graphics & Multimedia Lab

#include<conio.h>

#include<graphics.h>

#include<math.h>

void disp();

float x,y;

int xc,yc;

void main()

{

int gd=DETECT,gm;

int a,b;

float p1,p2;

clrscr();

initgraph(&gd,&gm,"");

scanf("%d%d",&xc,&yc);

scanf("%d%d",&a,&b);

x=0;y=b;

disp();

p1=(b*b)-(a*a*b)+(a*a)/4;

while((2.0*b*b*x)<=(2.0*a*a*y))

{

x++;

if(p1<=0)

p1=p1+(2.0*b*b*x)+(b*b);

else

{

y--;

p1=p1+(2.0*b*b*x)+(b*b)-(2.0*a*a*y);

}

disp();

x=-x;

disp();

x=-x;

}

x=a;

y=0;

disp();

p2=(a*a)+2.0*(b*b*a)+(b*b)/4;

while((2.0*b*b*x)>(2.0*a*a*y))

{

y++;

if(p2>0)

p2=p2+(a*a)-(2.0*a*a*y);

else

{

x--;

p2=p2+(2.0*b*b*x)-(2.0*a*a*y)+(a*a);

}

disp();

y=-y;

disp();

y=-y;

}

getch();

closegraph();

}

void disp()

{

putpixel(xc+x,yc+y,10);

putpixel(xc-x,yc+y,10);

putpixel(xc+x,yc-y,10);

putpixel(xc+x,yc-y,10);

}

//# Author: J.Ajai

//#Mail-id- ajay.compiler@gmail.com

//# PH:+91-9790402155

OUTPUT

Ellipse Drawing Algorithm

Enter the co-ordinates

Xc = 200

Yc = 200

A = 100

B = 70

integer arithmetic. | CS1355-Graphics & Multimedia Lab

### Source code programming

#include<stdio.h>#include<conio.h>

#include<graphics.h>

#include<math.h>

void disp();

float x,y;

int xc,yc;

void main()

{

int gd=DETECT,gm;

int a,b;

float p1,p2;

clrscr();

initgraph(&gd,&gm,"");

scanf("%d%d",&xc,&yc);

scanf("%d%d",&a,&b);

x=0;y=b;

disp();

p1=(b*b)-(a*a*b)+(a*a)/4;

while((2.0*b*b*x)<=(2.0*a*a*y))

{

x++;

if(p1<=0)

p1=p1+(2.0*b*b*x)+(b*b);

else

{

y--;

p1=p1+(2.0*b*b*x)+(b*b)-(2.0*a*a*y);

}

disp();

x=-x;

disp();

x=-x;

}

x=a;

y=0;

disp();

p2=(a*a)+2.0*(b*b*a)+(b*b)/4;

while((2.0*b*b*x)>(2.0*a*a*y))

{

y++;

if(p2>0)

p2=p2+(a*a)-(2.0*a*a*y);

else

{

x--;

p2=p2+(2.0*b*b*x)-(2.0*a*a*y)+(a*a);

}

disp();

y=-y;

disp();

y=-y;

}

getch();

closegraph();

}

void disp()

{

putpixel(xc+x,yc+y,10);

putpixel(xc-x,yc+y,10);

putpixel(xc+x,yc-y,10);

putpixel(xc+x,yc-y,10);

}

//# Author: J.Ajai

//#Mail-id- ajay.compiler@gmail.com

//# PH:+91-9790402155

OUTPUT

Ellipse Drawing Algorithm

Enter the co-ordinates

Xc = 200

Yc = 200

A = 100

B = 70

program
to draw ellipse using midpoint algorithm in c++ with output,ellipse
drawing algorithm in c source code,ellipse function in c graphics,write a
program in c to clip a line using cohen sutherland
algorithm,bresenham's ellipse drawing algorithm in c++,implementation of
ellipse generating algorithm

## 1 comment:

Write comments