These 3d dimesional Transformation algorithm was draw by the mathematical calculation using sin and cos function in Math.h header file using bar3d function in Graphics header file.And it will perform After the scaling Operation in x-axis y-axis z-axis.In these three dimensional it show the translation effect
You can see also there another type of program
Source code 3D transformation algorithm Source code in C Language programming
#include
#include
#include
#include
int maxx,maxy,midx,midy;
void axis()
{
getch();
cleardevice();
line(midx,0,midx,maxy);
line(0,midy,maxx,midy);
}
void main()
{
int gd,gm,x,y,z,o,x1,x2,y1,y2;
detectgraph(&gd,&gm);
initgraph(&gd,&gm,"c:/tc/bgi");
setfillstyle(0,getmaxcolor());
maxx=getmaxx();
maxy=getmaxy();
midx=maxx/2;
midy=maxy/2;
axis();
bar3d(midx+50,midy-100,midx+60,midy-90,5,1);
printf("\nEnter the Translation Factor");
scanf("%d%d",&x,&y);
axis();
printf("\nAfter Translation");
bar3d(midx+50,midy-100,midx+60,midy-90,5,1);
bar3d(midx+x+50,midy-(y+100),midx+x+60,midy-(y+90),5,1);
axis();
bar3d(midx+50,midy-100,midx+60,midy-90,5,1);
printf("\nEnter the Scaling Factor");
scanf("%d%d%d",&x,&y,&z);
axis();
printf("\nAfter Scaling");
bar3d(midx+50,midy-100,midx+60,midy-90,5,1);
bar3d(midx+(x*50),midy-(y*100),midx+(x*60),midy-(y*90),5*z,1);
axis();
bar3d(midx+50,midy-100,midx+60,midy-90,5,1);
printf("\nEnter the Rotating Angle");
scanf("%d",&o);
x1=50*cos(o*3.14/180)-100*sin(o*3.14/180);
y1=50*sin(o*3.14/180)+100*cos(o*3.14/180);
x2=60*cos(o*3.14/180)-90*sin(o*3.14/180);
y2=60*sin(o*3.14/180)+90*cos(o*3.14/180);
axis();
printf("\nAfter Rotating about Z-axis");
bar3d(midx+50,midy-100,midx+60,midy-90,5,1);
bar3d(midx+x1,midy-y1,midx+x2,midy-y2,5,1);
axis();
printf("\nAfter rotating about X-axis");
bar3d(midx+50,midy-100,midx+60,midy-90,5,1);
bar3d(midx+50,midy-x1,midx+60,midy-x2,5,1);
axis();
printf("\nAfter rotating about Y-axis");
bar3d(midx+50,midy-100,midx+60,midy-90,5,1);
bar3d(midx+x1,midy-100,midx+x2,midy-90,5,1);
getch();
closegraph();
}
OUTPUT 3D transformation algorithm Computer Graphics CS1355-Graphics and Multimedia Lab Output for translation scaling translation in X-axis Y-axis and z-axis
You can see also there another type of program
Source code 3D transformation algorithm Source code in C Language programming
#include
#include
#include
#include
int maxx,maxy,midx,midy;
void axis()
{
getch();
cleardevice();
line(midx,0,midx,maxy);
line(0,midy,maxx,midy);
}
void main()
{
int gd,gm,x,y,z,o,x1,x2,y1,y2;
detectgraph(&gd,&gm);
initgraph(&gd,&gm,"c:/tc/bgi");
setfillstyle(0,getmaxcolor());
maxx=getmaxx();
maxy=getmaxy();
midx=maxx/2;
midy=maxy/2;
axis();
bar3d(midx+50,midy-100,midx+60,midy-90,5,1);
printf("\nEnter the Translation Factor");
scanf("%d%d",&x,&y);
axis();
printf("\nAfter Translation");
bar3d(midx+50,midy-100,midx+60,midy-90,5,1);
bar3d(midx+x+50,midy-(y+100),midx+x+60,midy-(y+90),5,1);
axis();
bar3d(midx+50,midy-100,midx+60,midy-90,5,1);
printf("\nEnter the Scaling Factor");
scanf("%d%d%d",&x,&y,&z);
axis();
printf("\nAfter Scaling");
bar3d(midx+50,midy-100,midx+60,midy-90,5,1);
bar3d(midx+(x*50),midy-(y*100),midx+(x*60),midy-(y*90),5*z,1);
axis();
bar3d(midx+50,midy-100,midx+60,midy-90,5,1);
printf("\nEnter the Rotating Angle");
scanf("%d",&o);
x1=50*cos(o*3.14/180)-100*sin(o*3.14/180);
y1=50*sin(o*3.14/180)+100*cos(o*3.14/180);
x2=60*cos(o*3.14/180)-90*sin(o*3.14/180);
y2=60*sin(o*3.14/180)+90*cos(o*3.14/180);
axis();
printf("\nAfter Rotating about Z-axis");
bar3d(midx+50,midy-100,midx+60,midy-90,5,1);
bar3d(midx+x1,midy-y1,midx+x2,midy-y2,5,1);
axis();
printf("\nAfter rotating about X-axis");
bar3d(midx+50,midy-100,midx+60,midy-90,5,1);
bar3d(midx+50,midy-x1,midx+60,midy-x2,5,1);
axis();
printf("\nAfter rotating about Y-axis");
bar3d(midx+50,midy-100,midx+60,midy-90,5,1);
bar3d(midx+x1,midy-100,midx+x2,midy-90,5,1);
getch();
closegraph();
}
OUTPUT 3D transformation algorithm Computer Graphics CS1355-Graphics and Multimedia Lab
0 comments:
Post a Comment