Saturday, 27 December 2014

Program code : computer graphics

1. Shearing :

‪#‎include‬
#include
#include
#include
#include
void main()
{
int gd=DETECT,gm,option;
int i,maxx,maxy,x1,y1,x2,y2,x3,y3,x4,y4,gap=50,midx,midy;
float shx=0.0,shy=0.0;
clrscr();
initgraph(&gd,&gm,"..\\bgi");
printf("\n\tEnter the Rectangle Co-rdinates\n");
printf("\tx1, y1 = ");
scanf("%d%d",&x1,&y1);
printf("\n\tx2, y2 = ");
scanf("%d%d",&x2,&y2);
printf("\n\tx3, y3 = ");
scanf("%d%d",&x3,&y3);
printf("\n\tx4, y4 = ");
scanf("%d%d",&x4,&y4);
printf(" \n\n\tEnter the axis to shear\n");
printf(" \t1 - X axis Shear\n");
printf(" \t2 - Y axis shear\n");
printf(" \tYour Choice is => ");
scanf("%d",&option );
if(option==1)
{
printf("\n\tX-axis shear value = ");
scanf("%f",&shx);
}
else
{
printf("\n\tY-axis shear value = ");
scanf("%f",&shy);
}
//clearviewport();
maxx= getmaxx();
maxy=getmaxy();
midx=maxx/2;
midy=maxy/2;
line(midx,midy,maxx-5,midy);
line(midx,3,midx,midy);
for( i=midx-7;i{
outtextxy(i+3,midy-2,"|");


}
for( i=midy-3;i>0;i=i-gap)
{
outtextxy(midx-3,i,"-");
//itoa(maxy-i,str,10);
//outtextxy(9,i,str);
}
setcolor(50); // drawing rectangle using endpoints
line(x1,maxy-y1,x2,maxy-y2);
line(x3,maxy-y3,x4,maxy-y4);
line(x1,maxy-y1,x3,maxy-y3);
line(x2,maxy-y2,x4,maxy-y4);
outtextxy(midx+10,10,"Hit any key to see the shearing effect" );
getch();
setcolor(0); // to hide the rectangle drawn
line(x1,maxy-y1,x2,maxy-y2);
line(x3,maxy-y3,x4,maxy-y4);
line(x1,maxy-y1,x3,maxy-y3);
line(x2,maxy-y2,x4,maxy-y4);
setcolor(5); // to redraw the rectangle
if(option==1)
{
// shearing about x axis so only points x1 and x2 need to be recomputed
line(x1+shx*y1,maxy-y1,x2+shx*y2,maxy-y2);
line(x3,maxy-y3,x4,maxy-y4);
line(x1+shx*y1,maxy-y1,x3,maxy-y3);
line(x2+shx*y2,maxy-y2,x4,maxy-y4);
}
else
{
// shearing about y axis so only points y2 and y4 need to be recomputed
line(x1,maxy-y1,x2,maxy-(y2+shy*x2));
line(x3,maxy-y3,x4,maxy-(y4+shy*x4));
line(x1,maxy-y1,x3,maxy-y3);
line(x2,maxy-(y2+shy*x2),x4,maxy-(y4+shy*x4));
}
getch();
closegraph();
}
yesma yo value hala
x1=375;
y1=350;
x2=500;
y2=350;
x3=375;
y3=275;
x4=500;
y4=275;
==============================
2. Reflection
==============================
#include
#include
#include
#include
#include
void main()
{
int gd=DETECT,gm;
int i,xmid,ymid,x1,y1,x2,y2,x3,y3,x,y,dy,dx,p,gap=50,temp,option;
int x1dash,x2dash,x3dash,y1dash,y2dash,y3dash;
double theta;
clrscr();
initgraph(&gd,&gm,"..\\bgi");
printf("\n\tEnter the Triangle Co-rdinates\n");
printf("\tx1 = "); scanf("%d",&x1);
printf("\ty1 = "); scanf("%d",&y1);
printf("\tx2 = "); scanf("%d",&x2);
printf("\ty2 = "); scanf("%d",&y2);
printf("\tx3 = "); scanf("%d",&x3);
printf("\ty3 = "); scanf("%d",&y3);
xmid= getmaxx()/2;
ymid= getmaxy()/2;
line(5,ymid,getmaxx()-5,ymid);
line(xmid+3,5,xmid+3,getmaxy()-5);
for( i= xmid+gap;i{ outtextxy(i,ymid-3,"|"); }
for( i= ymid-gap;i>5;i=i-gap)
{ outtextxy(xmid,i,"-"); }
for( i= xmid-gap;i>5;i=i-gap)
{ outtextxy(i,ymid-3,"|"); }
for( i= ymid+gap;i{ outtextxy(xmid,i,"-"); }
line(x1+xmid,ymid-y1,x2+xmid,ymid-y2);
line(x2+xmid,ymid-y2,x3+xmid,ymid-y3);
line(x3+xmid,ymid-y3,x1+xmid,ymid-y1);
setcolor(5);
printf("Reflection about \n");
printf("[1] X axis\n");
printf("[2] Y axis\n");
printf("[3] X=Y axis (45 Degree)\n");
printf(" Enter the option (1-3):");
scanf("%d",&option);
switch( option)
{
case 1: y1=-y1; y2=-y2;y3=-y3; break;
case 2: x1=-x1;x2=-x2;x3=-x3;break;
case 3: y1=-y1; y2=-y2;y3=-y3;
line(xmid+3,ymid,xmid+200,ymid-200);
theta= ((double) 90 *3.14f )/(double)180;
x1dash=x1*cos(theta)-y1*sin(theta);
x2dash=x2*cos(theta)-y2*sin(theta);
x3dash=x3*cos(theta)-y3*sin(theta);
y1dash=x1*sin(theta)+y1*cos(theta);
y2dash=x2*sin(theta)+y2*cos(theta);
y3dash=x3*sin(theta)+y3*cos(theta);
x1=x1dash;x2=x2dash;x3=x3dash;
y1=y1dash;y2=y2dash;y3=y3dash;
}
line(x1+xmid,ymid-y1,x2+xmid,ymid-y2);
line(x2+xmid,ymid-y2,x3+xmid,ymid-y3);
line(x3+xmid,ymid-y3,x1+xmid,ymid-y1);
getch();
closegraph();
}

0 comments:

Post a Comment