//Aim:Writing
a C++ class for displaying pixel or point on the screen.
#include<iostream>
#include<graphics.h>
using namespace std;
class pt
{
private:int xco,yco,color;
public:
pt() // no-argument constructor
{
xco=0,yco=0, color=15;
}
void setco(int x,int y) // set pixel coordinates
{
xco=x;
yco=y;
}
void setcolor(int c) // set pixel color
{
color=c;
}
void draw() // display piont or pixel
{
putpixel(xco,yco,color);
}
};
int main()
{
int gd,gm=VGAMAX; gd=DETECT;
initgraph(&gd,&gm,NULL); // Initialize graphics
pt p1; // creat point
p1.setco(100,100); // set coordinates
p1.setcolor(14); // set colour
p1.draw(); // display pixel
p1.setco(110,100); // set coordinates
p1.draw(); // display pixel
p1.setco(120,100); // set coordinates
p1.draw(); // display pixel
getch(); // wait for keypress
closegraph(); // close graphics system
return 0;
}
Assignment no: 04
//Write a C++ class for a Line drawing method using overloading DDA and Bresenhams Algorithms, inheriting the pixel or point.
#include<graphics.h>
#include<iostream>
using namespace std;
class pt //base class
{
protected: int xco,yco,color;
public:
pt()
{
xco=0;yco=0;color=15;
}
void setco(int x,int y)
{
xco=x;
yco=y;
}
void setcolor(int c)
{
color=c;
}
void draw()
{ putpixel(xco,yco,color);
}
};
class dline: public pt //derived class
{
private: int x2,y2;
public:
dline():pt()
{
x2=0,y2=0;
}
void setline(int x, int y, int xx, int yy)
{
pt::setco(x,y);
x2=xx;
y2=yy;
}
void drawl() //Bresenham's Line
{
float x,y,dx,dy,e,temp;
int i,s1,s2,ex;
dx=abs(x2-xco);
dy=abs(y2-yco);
x=xco;
y=yco;
pt::setco(x,y);
pt::draw();
if(x2 > xco) //sign() function
{
s1=1;
}
if(x2 < xco)
{
s1=-1;
}
if(x2 == xco)
{
s1=0;
}
if(y2 > yco)
{
s2=1;
}
if(y2 < yco)
{
s2=-1;
}
if(y2 == yco)
{
s2=0;
}
if(dy > dx)
{
temp = dx;
dx = dy;
dy = temp;
ex = 1;
}
else
{
ex=0;
}
e=2*dy-dx; //decision variable
i=1;
do
{
while(e>=0)
{
if(ex==1)
{
x = x + s1;
}
else
{
y = y + s2;
}
e = e + 2*dy - 2*dx;
}
if(ex==1)
{
y = y + s2;
}
else
{
x = x + s1;
}
e = e + 2*dy;
pt::setco(x,y);
pt::draw();
i = i + 1;
}while(i<=dx);
}
void drawl(int colour) //DDA Line
{
float x,y,dx,dy,len;
int i;
pt::setcolor(colour);
dx=abs(x2-xco);
dy=abs(y2-yco);
if(dx >= dy)
{
len=dx;
}
else
{
len=dy;
}
dx=(x2-xco)/len;
dy=(y2-yco)/len;
x = xco + 0.5;
y = yco + 0.5;
i=1;
while(i<=len)
{
pt::setco(x,y);
pt::draw();
x = x + dx;
y = y + dy;
i = i + 1;
cout<<"\ti"<<i;
cout<<"\tx"<<x;
cout<<"\ty "<<y<<endl;
}
pt::setco(x,y);
pt::draw();
}
};
int main()
{
int gd=DETECT,gm=VGAMAX;
int ch,x1,y1,x2,y2, xmax,ymax,xmid,ymid;
char a;
initgraph(&gd,&gm,NULL);
pt p;
dline dda;
xmax = getmaxx();
ymax = getmaxy();
xmid = xmax /2;
ymid = ymax /2;
line(xmid,0,xmid,ymax); //Y co-ordinate
line(0,ymid,xmax,ymid); //X co-ordinate
do
{
xmax = getmaxx();
ymax = getmaxy();
xmid = xmax /2;
ymid = ymax /2;
cout<<"1.DDA LINE..";
cout<<"\n2.BRESENHAM'S LINE..";
cout<<"\n3.EXIT..";
cout<<"\nEnter your choice: ";
cin>>ch;
switch(ch)
{
case 1:
cout<<"\n Enter x1: "; cin>>x1;
cout<<"\n Enter y1: "; cin>>y1;
cout<<"\n Enter x2: "; cin>>x2;
cout<<"\n Enter y2: "; cin>>y2;
dda.setline(x1+xmid,ymid-y1,x2+xmid,ymid-y2);
dda.drawl(15);
break;
case 2:
cout<<"\n Enter x1: "; cin>>x1;
cout<<"\n Enter y1: "; cin>>y1;
cout<<"\n Enter x2: "; cin>>x2;
cout<<"\n Enter y2: "; cin>>y2;
dda.setline(x1+xmid,ymid-y1,x2+xmid,ymid-y2);
dda.drawl();
break;
case 3:
exit;
break;
}
cout<<"\nDO U Want To Continue y OR n: ";
cin>>a;
}while(a!='n');
delay(3000);
getch();
closegraph();
return 0;
}
Assignment no: 04
// Write a C++ class for a circle drawing inheriting line class
#include<graphics.h>
#include<iostream>
#include<stdlib.h>
#include<math.h>
using namespace std;
class dline //base class
{
protected: int x0,y0,x1,y1,x2,y2, colour;
public:
dline()
{
x1=0; y1=0; x2=0, y2=0;
}
void setcolor(int color)
{
colour =color;
}
void setoff1(int xx,int yy)
{
x0=xx;
y0=yy;
}
void setline(float x1,float y1, float xx,float yy)
{
x1=x1+x0; y1=y0-y1; x2=xx+x0, y2=y0-yy;
}
void drawl(float x1,float y1, float xx,float yy) //Simple DDA Line
{
float x,y,dx,dy,len;
int i;
dx=abs(x2-x1);
dy=abs(y2-y1);
if(dx >= dy)
{
len=dx;
}
else
{
len=dy;
}
dx=(x2-x1)/len;
dy=(y2-y1)/len;
x = x1 + 0.5;
y = y1 + 0.5;
putpixel(x,y,colour);
x = x + dx;
y = y + dy;
}
};
class mcircle:public dline
{
private: int x0,y0;
public:
mcircle():dline()
{
x0=0;y0=0;
}
void setoff(int xx,int yy)
{
x0=xx;
y0=yy;
}
void drawc(float x1, float y1, int r)
{
int i, x, y;
float d;
x=0, y=r;
d = 1.25 - r; //decision variabel
dline::setline(x,y,x,y);
do
{
dline::drawl(x1+x0+x, y0-y1+y,x1+x0+x, y0-y1+y);
dline::drawl(x1+x0+y, y0-y1+x,x1+x0+y, y0-y1+x);
dline::drawl(x1+x0+y, y0-y1-x,x1+x0+y, y0-y1-x);
dline::drawl(x1+x0+x, y0-y1-y,x1+x0+x, y0-y1-y);
dline::drawl(x1+x0-x, y0-y1-y,x1+x0-x, y0-y1-y);
dline::drawl(x1+x0-y, y0-y1-x,x1+x0-y, y0-y1-x);
dline::drawl(x1+x0-y, y0-y1+x,x1+x0-y, y0-y1+x);
dline::drawl(x1+x0-x, y0-y1+y,x1+x0-x, y0-y1+y);
if(d<0)
{
x = x + 1;
d = d + (2*x) + 3;
}
else
{
x = x + 1;
y = y - 1;
d = d + (2*x-2*y) + 3;
}
}while(x<=y);
}
};
int main()
{
int gd=DETECT,gm=VGAMAX;
int i, x, y, r, xmax,ymax,xmid,ymid;
char a;
initgraph(&gd,&gm,NULL);
dline l;
mcircle c;
xmax = getmaxx();
ymax = getmaxy();
xmid = xmax /2;
ymid = ymax /2;
line(xmid,0,xmid,ymax); //Y co-ordinate
line(0,ymid,xmax,ymid); //X co-ordinate
do
{
cout<<"\n Enter x: "; cin>>x;
cout<<"\n Enter y: "; cin>>y;
cout<<"\n Enter radius: "; cin>>r;
c.setoff(xmid, ymid);
l.setoff1(xmid, ymid);
l.setcolor(15);
c.drawc(x,y,r);
cout<<"\nDO U Want To Continue y OR n: ";
cin>>a;
}while(a!='n');
delay(3000);
getch();
closegraph();
return 0;
}
Assignment no: 05
//Aim:Write a program in C/C++ to draw a circle of desired radius.
#include<graphics.h>
#include<iostream>
#include<stdlib.h>
#include<math.h>
using namespace std;
class dcircle
{
private: int x0,y0;
public:
dcircle()
{
x0=0;y0=0;
}
void setoff(int xx,int yy)
{
x0=xx;
y0=yy;
}
void drawdc(float x, float y, int r) //DDA Circle
{
float x1,y1,x2,y2,startx,starty,ep;
int i,val;
x1=r*cos(0); //Initialize starting point
y1=r*sin(0);
startx = x1;
starty = y1;
i=0;
do
{
val = pow(2,i);
i++;
}while(val<r);
ep = 1/pow(2,i-1); //calculation of epsilon
do
{
x2 = x1 + y1*ep;
y2 = y1 - x2*ep;
putpixel(x0+x+x2, y0-(y+y2),15);
x1 = x2;
y1 = y2;
}while((y1 - starty) < ep || (startx - x1) > ep);
}
void drawbc(int x1, int y1, int r) //Bresenham's Circle
{
int i, x, y;
float d;
x=0, y=r;
d = 3 - 2*r; //decision variable
do
{
putpixel(x1+x0+x, y0-y1+y,15);
putpixel(x1+x0+y, y0-y1+x,15);
putpixel(x1+x0+y, y0-y1-x,15);
putpixel(x1+x0+x, y0-y1-y,15);
putpixel(x1+x0-x, y0-y1-y,15);
putpixel(x1+x0-y, y0-y1-x,15);
putpixel(x1+x0-y, y0-y1+x,15);
putpixel(x1+x0-x, y0-y1+y,15);
if(d<=0)
{
x = x + 1;
d = d + (4*x) + 6;
}
else
{
x = x + 1;
y = y - 1;
d = d + (4*x-4*y) + 10;
}
}while(x<=y);
}
void drawmc(float x1, float y1, int r) // Mid point Circle
{
int i, x, y;
float d;
x=0, y=r;
d = 1.25 - r; //decision variable
do
{
putpixel(x1+x0+x, y0-y1+y,15);
putpixel(x1+x0+y, y0-y1+x,15);
putpixel(x1+x0+y, y0-y1-x,15);
putpixel(x1+x0+x, y0-y1-y,15);
putpixel(x1+x0-x, y0-y1-y,15);
putpixel(x1+x0-y, y0-y1-x,15);
putpixel(x1+x0-y, y0-y1+x,15);
putpixel(x1+x0-x, y0-y1+y,15);
if(d<0)
{
x = x + 1;
d = d + (2*x) + 3;
}
else
{
x = x + 1;
y = y - 1;
d = d + (2*x-2*y) + 5;
}
}while(x<=y);
}
};
int main()
{
int gd=DETECT,gm=VGAMAX;
int i, x, y, r,ch, xmax,ymax,xmid,ymid;
float a,b;
char ans;
initgraph(&gd, &gm, NULL);
dcircle c1;
xmax = getmaxx();
ymax = getmaxy();
xmid = xmax /2;
ymid = ymax /2;
line(xmid,0,xmid,ymax); //Y co-ordinate
line(0,ymid,xmax,ymid); //X co-ordinate
do
{
cout<<"\nEnter Cricle Drwaing algorithm";
cout<<"\n1.DDA..";
cout<<"\n2.BRESENHAM'S..";
cout<<"\n3.MID POINT..";
cout<<"\n4.EXIT..";
cout<<"\nEnter your choice: ";
cin>>ch;
switch(ch)
{
case 1:
{
cout<<"\n Enter x: "; cin>>a;
cout<<"\n Enter y: "; cin>>b;
cout<<"\n Enter radius: "; cin>>r;
c1.setoff(xmid, ymid);
setcolor(15);
c1.drawdc(a,b,r);
break;
}
case 2:
{
cout<<"\n Enter x: "; cin>>x;
cout<<"\n Enter y: "; cin>>y;
cout<<"\n Enter radius: "; cin>>r;
c1.setoff(xmid, ymid);
setcolor(15);
c1.drawbc(x,y,r);
break;
}
case 3:
{
cout<<"\n Enter x: "; cin>>x;
cout<<"\n Enter y: "; cin>>y;
cout<<"\n Enter radius: "; cin>>r;
c1.setoff(xmid, ymid);
setcolor(15);
c1.drawmc(x,y,r);
break;
}
case 4:
exit;
break;
}
cout<<"\nDO U Want To Continue y OR n: ";
cin>>ans;
}while(ans!='n');
delay(3000);
getch();
closegraph();
return 0;
}
Assignment no: 06
//Aim:Write a program using C/C++ to draw a line with line styles (Thick, Thin, Dotted).
//Line styles using DDA
#include<graphics.h>
#include<iostream>
#include<stdlib.h>
#include<math.h>
using namespace std;
class pt //base class
{
protected: int xco,yco,color;
public:
pt()
{
xco=0;yco=0;color=15;
}
void setco(int x,int y)
{
xco=x;
yco=y;
}
void setcolor(int c)
{
color=c;
}
void draw()
{ putpixel(xco,yco,color);
}
};
class dline: public pt //derived class
{
private: int x2,y2;
public:
dline():pt()
{
x2=0,y2=0;
}
void setline(int x, int y, int xx, int yy)
{
pt::setco(x,y);
x2=xx;
y2=yy;
}
void drawsi(int colour) //Simple DDA Line
{
float x,y,dx,dy,len;
int i;
pt::setcolor(colour);
dx=abs(x2-xco);
dy=abs(y2-yco);
if(dx >= dy)
{
len=dx;
}
else
{
len=dy;
}
dx=(x2-xco)/len;
dy=(y2-yco)/len;
x = xco + 0.5;
y = yco + 0.5;
i=1;
while(i<=len)
{
pt::setco(x,y);
pt::draw();
x = x + dx;
y = y + dy;
i = i + 1;
}
pt::setco(x,y);
pt::draw();
}
void drawda(int colour) //Dash DDA Line
{
float x,y,dx,dy,len;
int i,dash_pixel=0, dash_space=0;
pt::setcolor(colour);
dx=abs(x2-xco);
dy=abs(y2-yco);
if(dx >= dy)
{
len=dx;
}
else
{
len=dy;
}
dx=(x2-xco)/len;
dy=(y2-yco)/len;
x = xco + 0.5;
y = yco + 0.5;
i=1;
while(i<=len)
{
dash_pixel=0;
while(dash_pixel<5)
{
pt::setco(x,y);
pt::draw();
x = x + dx;
y = y + dy;
i = i + 1;
dash_pixel = dash_pixel +1;
}
dash_space=0;
while(dash_space<=2)
{
x = x + dx;
y = y + dy;
i = i + 1;
dash_space = dash_space +1;
}
}
}
void drawdo(int colour) //Dotted DDA Line
{ float x,y,dx,dy,len;
int i,dot_space;
pt::setcolor(colour);
dx=abs(x2-xco);
dy=abs(y2-yco);
if(dx >= dy)
{
len=dx;
}
else
{
len=dy;
}
dx=(x2-xco)/len;
dy=(y2-yco)/len;
x = xco + 0.5;
y = yco + 0.5;
i=1;
while(i<=len)
{
dot_space=0;
while(dot_space<=1)
{
x = x + dx;
y = y + dy;
i = i + 1;
dot_space = dot_space +1;
}
pt::setco(x,y);
pt::draw();
}
}
void drawth(int x1,int y1, int x2, int y2,int colour ) //Thick DDA Line
{
float x,y,dx,dy,len;
int i;
dx=abs(x2-x1);
dy=abs(y2-y1);
if(dx >= dy)
{ len=dx;
}
else
{ len=dy;
}
dx=(x2-x1)/len;
dy=(y2-y1)/len;
x = x1 + 0.5;
y = y1 + 0.5;
i=1;
while(i<=len)
{ putpixel(x,y,colour);
x = x + dx;
y = y + dy;
i = i + 1;
}
putpixel(x,y,colour);
}
};
int main()
{
int gd=DETECT,gm=VGAMAX;
int i, ch,x1,y1,x2,y2, dx,dy,xmax,ymax,xmid,ymid,wx,wy,th;
char a;
initgraph(&gd,&gm,NULL);
dline ls;
xmax = getmaxx();
ymax = getmaxy();
xmid = xmax /2;
ymid = ymax /2;
line(xmid,0,xmid,ymax); //Y co-ordinate
line(0,ymid,xmax,ymid); //X co-ordinate
do
{ xmax = getmaxx();
ymax = getmaxy();
xmid = xmax /2;
ymid = ymax /2;
cout<<"\nEnter Line Styles";
cout<<"\n1.SIMPLE..";
cout<<"\n2.DASH..";
cout<<"\n3.DOTTED..";
cout<<"\n4.THICK..";
cout<<"\n5.EXIT..";
cout<<"\nEnter your choice: ";
cin>>ch;
switch(ch)
{
case 1:
cout<<"\n Enter x1: "; cin>>x1;
cout<<"\n Enter y1: "; cin>>y1;
cout<<"\n Enter x2: "; cin>>x2;
cout<<"\n Enter y2: "; cin>>y2;
ls.setline(x1+xmid,ymid-y1,x2+xmid,ymid-y2);
ls.drawsi(15);
break;
case 2:
cout<<"\n Enter x1: "; cin>>x1;
cout<<"\n Enter y1: "; cin>>y1;
cout<<"\n Enter x2: "; cin>>x2;
cout<<"\n Enter y2: "; cin>>y2;
ls.setline(x1+xmid,ymid-y1,x2+xmid,ymid-y2);
ls.drawda(15);
break;
case 3:
cout<<"\n Enter x1: "; cin>>x1;
cout<<"\n Enter y1: "; cin>>y1;
cout<<"\n Enter x2: "; cin>>x2;
cout<<"\n Enter y2: "; cin>>y2;
ls.setline(x1+xmid,ymid-y1,x2+xmid,ymid-y2);
ls.drawdo(15);
break;
case 4:
cout<<"\n Enter x1: "; cin>>x1;
cout<<"\n Enter y1: "; cin>>y1;
cout<<"\n Enter x2: "; cin>>x2;
cout<<"\n Enter y2: "; cin>>y2;
cout<<"Enter Thickness: ";
cin>>th;
ls.drawth(x1+xmid,ymid-y1,x2+xmid,ymid-y2,15);
if((y2-y1)/(x2-x1) <1)
{
wy=(th-1)*sqrt(pow((x2-x1),2)+pow((y2-y1),2))/(2*abs(x2-x1));
for(i=0;i<wy;i++)
{
ls.drawth(x1+xmid,ymid-y1-i,x2+xmid,ymid-y2-i,15);
ls.drawth(x1+xmid,ymid-y1+i,x2+xmid,ymid-y2+i,15);
}
}
else
{
wx=(th-1)*sqrt(pow((x2-x1),2)+pow((y2-y1),2))/(2*abs(y2-y1));
for(i=0;i<wx;i++)
{
ls.drawth(x1+xmid-i,ymid-y1,x2+xmid-i,ymid-y2,15);
ls.drawth(x1+xmid+i,ymid-y1,x2+xmid+i,ymid-y2,15);
}
}
break;
case 5:
exit;
break;
}
cout<<"\nDO U Want To Continue y OR n: ";
cin>>a;
}while(a!='n');
delay(3000);
getch();
closegraph();
return 0;
}
Assignment no: 07
//Write a C/C++ program to draw a convex polygons (Square, Rectangle, Triangle).
#include<iostream>
#include<graphics.h>
using namespace std;
class dline
{
protected: int x1,y1,x2,y2;
public:
dline()
{
x1=0,y1=0,x2=0,y2=0;
}
void step1()
{
cout<<"\n Enter x1: ";cin>>x1;
cout<<"\n Enter y1: ";cin>>y1;
}
void step2()
{
cout<<"\n Enter x2: ";cin>>x2;
cout<<"\n Enter y2: ";cin>>y2;
}
void drawl()
{
float x,y,dx,dy,len;
int i;
dx=abs(x2-x1);
dy=abs(y2-y1);
if(dx >= dy)
{
len=dx;
}
else
{
len=dy;
}
dx=(x2-x1)/len;
dy=(y2-y1)/len;
x = x1 + 0.5;
y = y1 + 0.5;
i=1;
while(i<=len)
{
putpixel(x,y,15);
x = x + dx;
y = y + dy;
i = i + 1;
}
putpixel(x,y,15);
}
};
class rect: public dline //Rectangle
{
private: int w,l;
public:
void setrect()
{
dline::step1();
cout<<"\n Enter width: ";cin>>w;
cout<<"\n Enter length: ";cin>>l;
}
void drawrect()
{
x2=x1;
y2=y1+w;
dline::drawl(); //left
x2=x1+l;
y2=y1;
dline::drawl(); //top
x1=x1;
y1=y1+w;
x2=x1+l;
y2=y1;
dline::drawl(); //bottom
x1=x1+l;
y1=y1-w;
x2=x1;
y2=y1+w;
dline::drawl(); //right
}
};
class square: public dline //Square
{
private: int l;
public:
void setsquare()
{
dline::step1();
cout<<"\n Enter length: ";cin>>l;
}
void drawsquare()
{
x2=x1;
y2=y1+l;
dline::drawl(); //left
x2=x1+l;
y2=y1;
dline::drawl(); //top
x1=x1;
y1=y1+l;
x2=x1+l;
y2=y1;
dline::drawl(); //bottom
x1=x1+l;
y1=y1-l;
x2=x1;
y2=y1+l;
dline::drawl(); //right
}
};
class triangle: public dline //Triangle
{
private: int x3,y3;
public:
void settri()
{
dline::step1();
dline::step2();
cout<<"\n Enter x3: ";cin>>x3;
cout<<"\n Enter y3: ";cin>>y3;
}
void drawtri()
{
int tempx,tempy;
dline::drawl();
tempx=x2;
x2=y2;
x2=x3;
y2=y3;
dline::drawl();
x1=tempx;
y1=tempy;
dline::drawl();
}
};
int main()
{
int gd=DETECT,gm=VGAMAX;
int i, x, y, r,ch, xmax,ymax,xmid,ymid;
char a;
initgraph(&gd,&gm,NULL);
rect r1;
square s;
triangle t;
do
{
cout<<"\nChoose polygon to draw";
cout<<"\n1.Rectangle..";
cout<<"\n2.Square..";
cout<<"\n3.Triangle..";
cout<<"\n4.EXIT..";
cout<<"\nEnter your choice: ";
cin>>ch;
switch(ch)
{
case 1:
{
r1.setrect();
r1.drawrect();
break;
}
case 2:
{
s.setsquare();
s.drawsquare();
break;
}
case 3:
{
t.settri();
t.drawtri();
delay(3000);
break;
}
case 4:
exit;
break;
}
cout<<"\nDO U Want To Continue y OR n: ";
cin>>a;
}while(a!='n');
delay(3000);
getch();
closegraph();
return 0;
}
Assignment no: 08
//Write a C/C++ program to draw a convex polygons (Square, Rectangle, Triangle) using programmable edges.
#include<iostream>
#include<graphics.h>
using namespace std;
class dline
{
protected: int x1,y1,x2,y2;
public:
dline()
{
x1=0,y1=0,x2=0,y2=0;
}
void drawl()
{
float x,y,dx,dy,len;
int i;
dx=abs(x2-x1);
dy=abs(y2-y1);
if(dx >= dy)
{
len=dx;
}
else
{
len=dy;
}
dx=(x2-x1)/len;
dy=(y2-y1)/len;
x = x1 + 0.5;
y = y1 + 0.5;
i=1;
while(i<=len)
{
putpixel(x,y,15);
x = x + dx;
y = y + dy;
i = i + 1;
}
putpixel(x,y,15);
}
};
class poly: public dline //poly
{
private: int a[10][2],p;
public:
void setpts(int i)
{
int j;
for(j=0;j<i;j++)
{
cout<<"\n Enter x-coordinate: "<<j<<":";cin>>a[j][0];
cout<<"\n Enter y-coordinate: "<<j<<":";cin>>a[j][1];
}
}
void drawpoly(int i)
{
int j;
x1=a[0][0];
y1=a[0][1];
x2=a[1][0];
y2=a[1][1];
dline::drawl();
for(j=0;j<i-1;j++)
{
x1=a[j][0];
y1=a[j][1];
x2=a[j+1][0];
y2=a[j+1][1];
dline::drawl();
}
x1=a[j][0];
y1=a[j][1];
x2=a[0][0];
y2=a[0][1];
dline::drawl();
}
};
int main()
{
int n ,gd=DETECT,gm=VGAMAX;
initgraph(&gd,&gm,NULL);
poly shape;
cout<<"\nEnter number of slides: "; cin>>n;
shape.setpts(n);
shape.drawpoly(n);
delay(3000);
getch();
closegraph();
return 0;
}
Assignment no: 09
// Write a C/C++ program to fill polygon using scan line algorithm.
//Scan line algorithm for filling polygon