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();
}

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();
}

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",&shy);
 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();
 }

Friday, 19 December 2014

Wednesday, 17 December 2014

Tuesday, 16 December 2014