OBJECTIVE transformation (1)
OBJECTIVE transformation (1)
Composite 2D Transformations
PROGRAM
OUTPUT
OBJECTIVE
Three dimensional transformations - Translation, Rotation, Scaling
PROGRAM
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
void main()
{
intx11,y11,x21,y21,x12,y12;
int x22,y22,x1,y1,x2,y2,x3,y3;
int x4,y4,x5,y5,x6,y6,x7,y7,x8,y8,sf,sy;
int gdriver = DETECT,gmode;
initgraph(&gdriver,&gmode,"C:\\TurboC3\\BGI");
//1st rectangle
printf("enter coordinates of 1st rectangle : \n");
scanf("%d%d%d%d",&x11,&y11,&x21,&y21);
printf("enter coordinate of 2nd rectangle : \n");
scanf("%d%d%d%d",&x12,&y12,&x22,&y22);
printf("enter coordinates of first line : \n");
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
printf("enter coordinates of second line : \n");
scanf("%d%d%d%d",&x3,&y3,&x4,&y4);
printf("enter coordinate of third line : \n");
scanf("%d%d%d%d",&x5,&y5,&x6,&y6);
printf("enter coordinates of fourth line : \n");
scanf("%d%d%d%d",&x7,&y7,&x8,&y8);
rectangle(x11,y11,x21,y21);
//2nd rectangle
rectangle(x12,y12,x22,y22);
line(x1,y1,x2,y2);
line(x3,y3,x4,y4);
line(x5,y5,x6,y6);
line(x7,y7,x8,y8);
printf("enter translation factor\n");
scanf("%d%d",&sf,%sy);
setcolor(GREEN);
rectangle(x11+sf,y11+sy,x21+sf,y21+sy);
rectangle(x12+sf,y12+sy,x22+sf,y22+sy);
line(x1+sf,y1+sy,x2+sf,y2+sy);
line(x3+sf,y3+sy,x4+sf,y4+sy);
line(x5+sf,y5+sy,x6+sf,y6+sy);
line(x7+sf,y7+sy,x8+sf,y8+sy);
getch();
closegraph();
}
OUTPUT
OBJECTIVE
Composite 3D transformations
PROGRAM
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
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,ang,x1,x2,y1,y2;
detectgraph(&gd,&gm);
initgraph(&gd,&gm,"C:/TC/BGI");
setfillstyle(3,25);
maxx=getmaxx();
maxy=getmaxy();
midx=maxx/2;
midy=maxy/2;
outtextxy(100,100,"ORIGINAL OBJECT");
line(midx,0,midx,maxy);
line(0,midy,maxx,midy);
bar3d(midx+100,midy-20,midx+60,midy-90,20,5);
axis();
outtextxy(100,20,"TRANSLATION");
printf("\n\n Enter the Translation vector: ");
scanf("%d%d",&x,&y);
bar3d(midx+100,midy-20,midx+60,midy-90,20,5);
bar3d(midx+(x+100),midy-(y+20),midx+(x+60),midy-(y+90),20,5);
axis();
outtextxy(100,20,"SCALING");
printf("\n Enter the Scaling Factor: ");
scanf("%d%d%d",&x,&y,&z);
bar3d(midx+100,midy-20,midx+60,midy-90,20,5);
bar3d(midx+(x*100),midy-(y*20),midx+(x*60),midy-(y*90),20*z,5);
axis();
outtextxy(100,20,"ROTATION");
printf("\n Enter the Rotation angle: ");
scanf("%d",&ang);
x1=100*cos(ang*3.14/180)-20*sin(ang*3.14/180);
y1=100*sin(ang*3.14/180)+20*sin(ang*3.14/180);
x2=60*cos(ang*3.14/180)-90*sin(ang*3.14/180);
y2=60*sin(ang*3.14/180)+90*sin(ang*3.14/180);
axis();
printf("\n After rotating about z-axis\n");
bar3d(midx+100,midy-20,midx+60,midy-90,20,5);
bar3d(midx+x1,midy-y1,midx+x2,midy-y2,20,5);
axis();
printf("\n After rotating about x-axis\n");
bar3d(midx+100,midy-20,midx+60,midy-90,20,5);
bar3d(midx+100,midy-x1,midx+60,midy-x2,20,5);
axis();
printf("\n After rotating about y-axis\n");
bar3d(midx+100,midy-20,midx+60,midy-90,20,5);
bar3d(midx+x1,midy-20,midx+x2,midy-90,20,5);
axis();
closegraph();
}
OUTPUT