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);
scanf("%d%d",&x2,&y2);
printf("\n\tx3, y3 = ");
scanf("%d%d",&x3,&y3);
scanf("%d%d",&x3,&y3);
printf("\n\tx4, y4 = ");
scanf("%d%d",&x4,&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",­);
}
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",­);
}
//clearviewport();
maxx= getmaxx();
maxy=getmaxy();
midx=maxx/2;
midy=maxy/2;
maxx= getmaxx();
maxy=getmaxy();
midx=maxx/2;
midy=maxy/2;
line(midx,midy,maxx-5,midy);
line(midx,3,midx,midy);
line(midx,3,midx,midy);
for( i=midx-7;i{
outtextxy(i+3,midy-2,"|");
}
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);
{
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(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);
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);
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));
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");
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);
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,"-"); }
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
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);
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;
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();
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();
}
Friday, 26 December 2014
JACOBI ITERATION program code © Khec
#include
#include
#include
#define E 0.0001
void main()
{clrscr();
int n,i,j,key;
float a[10][10],b[10],xo[10],x[10],sum;
printf("enter n");
scanf("%d",&n);
printf("enter the matrix A");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("a[%d][%d]",i,j);
scanf("%f",&a[i][j]);
}
printf("b[%d]",i);
scanf("%f",&b[i]);
xo[i]=b[i]/a[i][i];
}
l:
key=0;
for(i=1;i<=n;i++)
{
sum=b[i];
for(j=1;j<=n;j++)
{if(j!=i)
{sum=sum-a[i][j]*xo[j];
}
}
x[i]=sum/a[i][i];
if(key==0)
{
if(fabs((x[i]-xo[i])/x[i])>E)
{key=1;
}
}
}
if(key==1)
{
for(i=1;i<=n;i++)
{
xo[i]=x[i];
}
goto l;
}
for(i=0;i<=n;i++)
{
printf("x[%d]:%f",i,x[i]);
}
getch();
}
#include
#include
#define E 0.0001
void main()
{clrscr();
int n,i,j,key;
float a[10][10],b[10],xo[10],x[10],sum;
printf("enter n");
scanf("%d",&n);
printf("enter the matrix A");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("a[%d][%d]",i,j);
scanf("%f",&a[i][j]);
}
printf("b[%d]",i);
scanf("%f",&b[i]);
xo[i]=b[i]/a[i][i];
}
l:
key=0;
for(i=1;i<=n;i++)
{
sum=b[i];
for(j=1;j<=n;j++)
{if(j!=i)
{sum=sum-a[i][j]*xo[j];
}
}
x[i]=sum/a[i][i];
if(key==0)
{
if(fabs((x[i]-xo[i])/x[i])>E)
{key=1;
}
}
}
if(key==1)
{
for(i=1;i<=n;i++)
{
xo[i]=x[i];
}
goto l;
}
for(i=0;i<=n;i++)
{
printf("x[%d]:%f",i,x[i]);
}
getch();
}
Reflection program code, lab8 © Khec
#include
#include
#include
#include
#include
void main()
{
clrscr();
int x1,x2,x3,y1,y2,y3,X1,X2,X3,Y1,Y2,Y3,shx,shy;
int midx, midy,A,gd,gm,choice,choice1;
gd=DETECT;
initgraph(&gd,&gm,"c:\\tc\\bgi");
midx=getmaxx()/2;
midy=getmaxy()/2;
printf("\n\tEnter the coordinates of a triangle:");
printf("\tA(x1,y1):");
scanf("%d%d",&x1,&y1);
printf("\tB(x2,y2):");
scanf("%d%d",&x2,&y2);
printf("\tC(x3,y3):");
scanf("%d%d",&x3,&y3);
line(midx-500,midy,midx+500,midy);
line(midx,midy-500,midx,midy+500);
line(x1+midx,y1+midy,x2+midx,y2+midy);
line(x2+midx,y2+midy,x3+midx,y3+midy);
line(x1+midx,y1+midy,x3+midx,y3+midy);
printf("\n\t 1) Reflection 2) Shearing 3) exit\n");
printf("\t Enter your choice:");
scanf("%d", &choice);
switch(choice)
{
case 1:
printf("\n\t1) At x-axis 2) At y-axis 3) About origin 4) At all 45 5) Exit");
scanf("%d",&choice1);
switch(choice1)
{
case 1:
y1=-y1;
y2=-y2;
y3=-y3;
line(x1+midx,y1+midy,x2+midx,y2+midy);
line(x2+midx,y2+midy,x3+midx,y3+midy);
line(x1+midx,y1+midy,x3+midx,y3+midy);
break;
case 2:
x1=-x1;
x2=-x2;
x3=-x3;
line(x1+midx,y1+midy,x2+midx,y2+midy);
line(x2+midx,y2+midy,x3+midx,y3+midy);
line(x1+midx,y1+midy,x3+midx,y3+midy);
break;
case 3:
x1=-x1;
x2=-x2;
x3=-x3;
y1=-y1;
y2=-y2;
y3=-y3;
line(x1+midx,y1+midy,x2+midx,y2+midy);
line(x2+midx,y2+midy,x3+midx,y3+midy);
line(x1+midx,y1+midy,x3+midx,y3+midy);
break;
case 4:
X1=y1;
X2=y2;
X3=y3;
Y1=x1;
Y2=x2;
Y3=x3;
line(X1+midx,Y1+midy,X2+midx,Y2+midy);
line(X2+midx,Y2+midy,X3+midx,Y3+midy);
line(X1+midx,Y1+midy,X3+midx,Y3+midy);
break;
case 5:
exit(0);
break;
}
case 2:
printf("\n\t1) At x-direction 2) At y-direction 3) Exit");
printf("\n\tEnter your choice:");
scanf("%d",&choice1);
switch(choice1)
{
case 1:
printf("Enter shx:");
scanf("%d",&shx);
X1=x1+shx*y1;
X2=x2+shx*y2;
X3=x3+shx*y3;
line(X1+midx,y1+midy,X2+midx,y2+midy);
line(X2+midx,y2+midy,X3+midx,y3+midy);
line(X1+midx,y1+midy,X3+midx,y3+midy);
break;
case 2:
printf("Enter shy:");
scanf("%d",­);
Y1=shy*x1+y1;
Y2=shy*x2+y2;
Y3=shy*x3+y3;
line(x1+midx,Y1+midy,x2+midx,Y1+midy);
line(x2+midx,Y2+midy,x3+midx,Y2+midy);
line(x1+midx,Y3+midy,x3+midx,Y3+midy);
break;
case 3:
exit(0);
break;
}
}
getch();
}
#include
#include
#include
#include
void main()
{
clrscr();
int x1,x2,x3,y1,y2,y3,X1,X2,X3,Y1,Y2,Y3,shx,shy;
int midx, midy,A,gd,gm,choice,choice1;
gd=DETECT;
initgraph(&gd,&gm,"c:\\tc\\bgi");
midx=getmaxx()/2;
midy=getmaxy()/2;
printf("\n\tEnter the coordinates of a triangle:");
printf("\tA(x1,y1):");
scanf("%d%d",&x1,&y1);
printf("\tB(x2,y2):");
scanf("%d%d",&x2,&y2);
printf("\tC(x3,y3):");
scanf("%d%d",&x3,&y3);
line(midx-500,midy,midx+500,midy);
line(midx,midy-500,midx,midy+500);
line(x1+midx,y1+midy,x2+midx,y2+midy);
line(x2+midx,y2+midy,x3+midx,y3+midy);
line(x1+midx,y1+midy,x3+midx,y3+midy);
printf("\n\t 1) Reflection 2) Shearing 3) exit\n");
printf("\t Enter your choice:");
scanf("%d", &choice);
switch(choice)
{
case 1:
printf("\n\t1) At x-axis 2) At y-axis 3) About origin 4) At all 45 5) Exit");
scanf("%d",&choice1);
switch(choice1)
{
case 1:
y1=-y1;
y2=-y2;
y3=-y3;
line(x1+midx,y1+midy,x2+midx,y2+midy);
line(x2+midx,y2+midy,x3+midx,y3+midy);
line(x1+midx,y1+midy,x3+midx,y3+midy);
break;
case 2:
x1=-x1;
x2=-x2;
x3=-x3;
line(x1+midx,y1+midy,x2+midx,y2+midy);
line(x2+midx,y2+midy,x3+midx,y3+midy);
line(x1+midx,y1+midy,x3+midx,y3+midy);
break;
case 3:
x1=-x1;
x2=-x2;
x3=-x3;
y1=-y1;
y2=-y2;
y3=-y3;
line(x1+midx,y1+midy,x2+midx,y2+midy);
line(x2+midx,y2+midy,x3+midx,y3+midy);
line(x1+midx,y1+midy,x3+midx,y3+midy);
break;
case 4:
X1=y1;
X2=y2;
X3=y3;
Y1=x1;
Y2=x2;
Y3=x3;
line(X1+midx,Y1+midy,X2+midx,Y2+midy);
line(X2+midx,Y2+midy,X3+midx,Y3+midy);
line(X1+midx,Y1+midy,X3+midx,Y3+midy);
break;
case 5:
exit(0);
break;
}
case 2:
printf("\n\t1) At x-direction 2) At y-direction 3) Exit");
printf("\n\tEnter your choice:");
scanf("%d",&choice1);
switch(choice1)
{
case 1:
printf("Enter shx:");
scanf("%d",&shx);
X1=x1+shx*y1;
X2=x2+shx*y2;
X3=x3+shx*y3;
line(X1+midx,y1+midy,X2+midx,y2+midy);
line(X2+midx,y2+midy,X3+midx,y3+midy);
line(X1+midx,y1+midy,X3+midx,y3+midy);
break;
case 2:
printf("Enter shy:");
scanf("%d",­);
Y1=shy*x1+y1;
Y2=shy*x2+y2;
Y3=shy*x3+y3;
line(x1+midx,Y1+midy,x2+midx,Y1+midy);
line(x2+midx,Y2+midy,x3+midx,Y2+midy);
line(x1+midx,Y3+midy,x3+midx,Y3+midy);
break;
case 3:
exit(0);
break;
}
}
getch();
}













































