Display File Program In Computer Graphics With Output


 Display File Program


Display File Program In Computer Graphics,Display File Program In Computer Graphics in C language,Display File Program In Computer Graphics with output,Display File Program,Computer Graphics Display File Program

#include<stdio.h>

#include<conio.h>

#include<math.h>

#include<graphics.h>

#include<string.h>

#define r(a) (a+0.5)

#define size 25


int gdriver=DETECT,gmode;

float df_penx,df_peny,frame_penx,frame_peny,df_op[size],df_x[size],df_y[size];

float hs,he,h,we,ws,w,x,y;

int op,fre,erase_flag=0,x1,y1,n;


void new_frame();

void putpoint(int op,float x,float y);

void display_file(int op);

void move_abs(float x,float y);

void line_bres(int xa,int ya,int xb,int yb);

void move_rel(float dx,float dy);

void house();

void getpoint(int n);

void domove(float x,float y);

void doline(float x,float y);

void interpret(int s,int count);

void make_pic();

void bresenham(int xa,int ya,int xb,int yb);

float max(float a,float b);

float min(float a,float b);

void erase();

void initialize();


void main()

{

clrscr();

initgraph(&gdriver,&gmode,"C:\\Turboc3\\BGI");

initialize();

new_frame();

move_abs(0.1,0.2);

house();

make_pic();

getch();

}


void initialize()

{

fre=0;

df_penx=0;

df_peny=0;

frame_penx=0;

frame_peny=0;

hs=0;

he=getmaxy();

h=he-hs;

ws=0;

we=getmaxy();

w=we-ws;

}


void move_abs(float x,float y)

{

df_penx=x;

df_peny=y;

display_file(1);

}


void display_file(int op)

{

putpoint(op,df_penx,df_peny);

}


void putpoint(int op,float x,float y)

{

if(fre>size)

printf("Display file full...");

else

{

df_op[fre]=op;

df_x[fre]=x;

df_y[fre]=y;

fre++;

}

}


void house()

{

move_rel(0.0,0.2);

move_rel(0.1,0.1);

move_rel(0.1,-0.1);

move_rel(0.0,-0.2);

move_rel(-0.2,0.0);

}


void move_rel(float dx,float dy)

{

df_penx+=dx;

df_peny+=dy;

display_file(2);

}


void make_pic()

{

if(erase_flag==1)

{

erase();

erase_flag=0;

}

if(fre>1)

interpret(0,fre-1);

fre=0;

}


void interpret(int s,int count)

{

for(n=s;n<=count;n++)

{

getpoint(n);

if(op==1)

domove(x,y);

else if(op==2)

doline(x,y);

else

printf("Wrong OPCode...");

}

}


void getpoint(int n)

{

op=df_op[n];

x=df_x[n];

y=df_y[n];

}


void domove(float x,float y)

{

float p1,q1;

p1=min(we,(x*w+ws));

q1=min(he,(y*h+hs));

frame_penx=max(ws,p1);

frame_peny=max(hs,q1);

}


void doline(float x,float y)

{

float p1,q1;

p1=min(we,(x*w+ws));

q1=min(he,(y*h+hs));

x1=frame_penx;

y1=frame_peny;

frame_penx=max(ws,p1);

frame_peny=max(hs,q1);

bresenham(r(x1),r(y1),r(frame_penx),r(frame_peny));

}


float max(float a,float b)

{

if(a>b)

return (a);

else

return (b);

}

float min(float a,float b)

{

if(a<b)

return (a);

else

return (b);

}


void bresenham(int xa,int ya,int xb,int yb)

{

int p,x,y,dx,dy,twodydx,twody,twodxdy,twodx,xend,yend;

float m;

dx=abs(xa-xb);

dy=abs(ya-yb);

m=(float)(yb-ya)/(xb-xa);


if(dx>dy)

{

p=2*dy-dx;

twody=2*dy;

twodydx=2*(dy-dx);

if(xa>xb)

{

x=xb;

y=yb;

xend=xa;

}

else

{

x=xa;

y=ya;

xend=xb;

}


putpixel(x,y,2);


while(x<xend)

{

x++;

if(p<0)

p=p+twody;

else

{

if(0<m && m<1)

y++;

else

y--;

p=p+twodydx;

}

putpixel(x,y,2);

}

}

else

{

p=2*dx-dy;

twodx=2*dx;

twodxdy=2*(dx-dy);

if(ya>yb)

{

x=xb;

y=yb;

yend=ya;

}

else

{

x=xa;

y=ya;

yend=yb;

}


putpixel(x,y,2);


while(y<yend)

{

y++;

if(p<0)

p=p+twodx;

else

{

if(m>=1)

x++;

else

x--;

p=p+twodxdy;

}

putpixel(x,y,2);

}

}

}


void new_frame()

{

erase_flag=1;

}


void erase()

{

int j;

for(n=1;n<we+1;n++)

for(j=1;j<he+1;j++)

putpixel(n,j,0);

}

Know more about Lenovo Legion 7i

Draw a unique house in Computer Graphics

Comment your views for this Article :)


Thank you for visiting my blog :)


No comments

Comment your views on this article

Powered by Blogger.