Daily Archives: July 28, 2012
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();
}
Posted by Graphics
inHyperbola- 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();
}
Posted by Graphics
inHyperbola-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();
}
Posted by Graphics
in