Set up a midpoint algorithm taking symmetry considerations i
Solution
PARABOLA - MID POINT (1st ORDER)
#include<iostream.h>
 #include<graphics.h>
 #include<stdio.h>
 #include<conio.h>
 void put_pixel(int x, int y)
 {
 putpixel((x+300),(240-y),15);
 putpixel((x+300),(240+y),15);
 }
 void para(int cx, int cy, double a)
 {
 setcolor(BLUE);
 line(300,0,300,479);
 setcolor(RED);
 line(0,240,639,240);
 double x=0,y=0; /* initial coorodinates */
 double d1;
 d1 = (2*a) – 1;
 put_pixel(x,y);
 while(y<= (2*a*1.0))
 {
 if(d1<0)
 {
 d1+= 4*a-3-2*y;
 x++;
 y++;
 }
 else
 {
 d1-= 3 + 2*y;
 y++;
 }
 put_pixel(x,y);
 }
 d1 = (4.0*a*(x+1) – (y+0.5)*(y+0.5) );
 while( y < 220 )
 {
 if(d1<0)
 {
 d1+= 4*a;
 x++;
 }
 else
 {
 d1+= 4.0*a – 2 – 2.0*y ;
 x++;
 y++;
 }
 put_pixel(x,y);
 }
 }
 void main()
 {
 clrscr();
 double a;
 cout<<“Enter a : “;
 cin>>a;
 int gdriver = DETECT, gmode;
 initgraph(&gdriver, &gmode, “c:\\\\tc\\\\bgi”);
 para(0,0,a);
 getch();
 closegraph();
 }
PARABOLA - BRESENHAM’S APPROACH
#include<iostream.h>
 #include<graphics.h>
 #include<stdio.h>
 #include<conio.h>
 void plotpixel(int x, int y)
 {
 putpixel((x+300),(240-y),15);
 // putpixel((-x+300),(240-y),15);
 putpixel((x+300),(240+y),15);
 // putpixel((-x+300),(240+y),15);
 }
 void para(int cx, int cy, double a)
 {
 setcolor(BLUE);
 line(300,0,300,479);
 setcolor(RED);
 line(0,240,639,240);
 double x=0,y=0; /* initial coorodinates */
 double d1 = 1 - (2*a);
 plotpixel(x,y);
 while( y<= (2*a) )
 {
 if(d1>0)
 {
 d1+= 3 + 2*y - 4*a;
 plotpixel(x,y);
 x++;
 y++;
 }
 else
 {
 d1+= 3 + 2*y;
 plotpixel(x,y);
 y++;
 }
 //plotpixel(x,y);
 }
 d1 = ((y+0.5)*(y+0.5) - 4*a*(x+1));
 while( y < 220 )
 {
 if(d1>0)
 {
 d1+= (-4*a);x++;}
 else
 {
 d1+= 2 + 2*y - 4*a;
 x++;
 y++;
 }
 plotpixel(x,y);
 }
 }
 void main()
 {
 clrscr();
 double a;
 cout<<\"Enter a : \";cin>>a;
 int gdriver = DETECT, gmode;
 initgraph(&gdriver, &gmode, \"c:\\\\tc\\\\bgi\");
 para(0,0,a);
 getch();
 closegraph();
 }



