#include #include #include #include #include class Circle { private: int gd,gm,x,y,r; float d; public: void get(); void bres(); Circle(); ~Circle(); } Circle::Circle() { gd=DETECT; initgraph(&gd,&gm,"K:\\tc\\bgi"); } void Circle::get() { outtextxy(10,30,"Enter the radius of circle"); cin>>r; } Circle::~Circle() { closegraph(); } void Circle::bres() { cleardevice(); outtextxy(100,10,"Bresenham's circle drawing algorithm"); get(); x=0;y=r;d=3-(2*r); do { putpixel(200+x,200+y,15); putpixel(200+y,200+x,15); putpixel(200+y,200-x,15); putpixel(200+x,200-y,15); putpixel(200-x,200-y,15); putpixel(200-y,200-x,15); putpixel(200-y,200+x,15); putpixel(200-x,200+y,15); if(d<=0) d=d+(4*x)+6; else { d=d+(4*(x-y))+10; y=y-1; } x++; delay(10);
} while(x } void main() { clrscr(); Circle c; c.bres(); getch(); }
Attachmentsbresenham circle drawing algorithm (2190-17254-BRESENHAM circle.doc)
|
No feedbacks found. Be the first to respond...
|