Parabola – Midpoint Approach 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();

}

Hyperbola- 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 hyper(int cx, int cy, double a,double b)

{

setcolor(BLUE);

line(300,0,300,479);

setcolor(RED);

line(0,240,639,240);

double x=a,y=0;  /* initial coorodinates */

 

double d1 = (2*a*a) – (b*b) – (2*a*b*b);

plotpixel(x,y);

 

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

{

if(d1<= (-1*b*b*0.5))

{

d1+= 2*a*a*(2*y+3);

plotpixel(x,y);

y++;

}

else

{

d1+= 2*a*a*(2*y+3) – 4*b*b*(x+1);

plotpixel(x,y);

x++;

y++;

}

//plotpixel(x,y);

}

 

d1 = a*a*(y+1)*(y+1) + a*a*y*y + 2*a*a*b*b – 2*a*a*b*b*(x+1)*(x+1);

 

while(y<220)

{

if(d1<= (a*a*0.5))

{

d1+= a*a*4*(y+1) – 2-a*a*b*b*(2*x+3)*(2*x+3);

y++;

x++;

}

else

{

d1+= -2.0*b*b*a*a*(2*x+3);

x++;

}

plotpixel(x,y);

}

 

}

 

void main()

{

clrscr();

double a,b;

cout<<“Enter a and b : “;

cin>>a>>b;

 

int gdriver = DETECT, gmode;

initgraph(&gdriver, &gmode, “c:\\tc\\bgi”);

hyper(0,0,a,b);

getch();

closegraph();

}

 

 

 

 

Hyperbola-midpoint approach 1st order

#include<graphics.h>

#include<conio.h>

#include<stdio.h>

#include<dos.h>

#include<stdlib.h>

 

void main()

{

int gd=DETECT;

int gm;

initgraph(&gd,&gm,”c:\\tc\\bgi”);

float x,y;

float xc,yc;

float d,fx,fy,b,a;

d=b*b*(a+0.5)*(a+0.5)-a*a-a*a*b*b;

printf(“enter centre (xc,yc)\n”);

scanf(“%f %f”,&xc,&yc);

printf(“enter a & b”);

scanf(“%f %f”,&a,&b);

x=a;

y=0;

fx=2*b*b*a;

fy=0;

setcolor(MAGENTA);

line(0,240,640,240);

line(320,0,320,480);

while(abs(fy)<=fx)

{

if(d>=0)

{

d=d-a*a*(2*y+3);

}

else

{

d=d-a*a*(2*y+3)+b*b*(2*x+2);

x++;

fx=fx+2*b*b;

}

y++;

fy=fy+2*a*a;

putpixel(x+320+xc,240-y-yc,GREEN);

putpixel(x+320+xc,240+y-yc,GREEN);

putpixel(-x+320+xc,240-y-yc,GREEN);

delay(20);

putpixel(-x+320+xc,240+y-yc,GREEN);

delay(20);

}

x=p/2;

y=p;

d=-p;

while(y<3*p)

{

x++;

if(d>=0)

{

d=d-2*p;

}

else

{

d=d+2*y+2-2*p;

y++;

}

putpixel(x+320+xc,240-y-yc,RED);

delay(20);

putpixel(x+320+xc,240+y-yc,RED);

delay(20);

}

getch();

}

Calendar

July 2012
M T W T F S S
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Categories

Archives