#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
void translate();
void scale();
void rotate();
void main()
{
int ch;
int gd=DETECT,gm;
initgraph(&gd,&gm,"c:\\tc\\bgi");
setcolor(6);
outtextxy (100,88,"Object.");
rectangle(100,150,150,100);
printf("---MENU---");
printf("\n 1)Translate\n 2)Scale\n 3)Rotate");
printf("\nEnter your choice: ");
scanf("%d",&ch);
cleardevice();
switch(ch)
{
case 1: translate();
break;
case 2: scale();
break;
case 3: rotate();
break;
default: printf("you have enterd wrong choice");
break;
}
getch();
closegraph();
}
void translate()
{
int tx,ty;
setcolor(2);
outtextxy(240,10,"TRANSLATION");
outtextxy(238,20,"------------");
printf("\nEnter tx: ");
scanf("%d",&tx);
printf("\nEnter ty: ");
scanf("%d",&ty);
cleardevice();
rectangle(100,150,150,100);
printf("\nAfter Translation");
rectangle(100+tx,150+ty,150+tx,100+ty);
}
void scale()
{
int sx,sy;
setcolor(2);
outtextxy(240,10,"SCALING");
outtextxy(238,20,"--------");
printf("\nEnter sx: ");
scanf("%d",&sx);
printf("\nEnter sy: ");
scanf("%d",&sy);
cleardevice();
rectangle(100,150,150,100);
printf("\nAfter Scaling");
rectangle(100*sx,150*sy,150*sx,100*sy);
}
void rotate()
{
float theta;
int x1,x2,x3,x4;
int y1,y2,y3,y4;
int ax1,ax2,ax3,ax4,ay1,ay2,ay3,ay4;
int refx,refy;
printf("\nEnter the angle for rotation: ");
scanf("%f",&theta);
theta=theta*(3.14/180);
cleardevice();
setcolor(2);
outtextxy(240,10,"ROTATE");
outtextxy(238,20,"-------");
refx=100;
refy=100;
x1=100;
y1=100;
x2=150;
y2=100;
x3=150;
y3=150;
x4=100;
y4=150;
ax1=refy+(x1-refx)*cos(theta)-(y1-refy)*sin(theta);
ay1=refy+(x1-refx)*sin(theta)+(y1-refy)*cos(theta);
ax2=refy+(x2-refx)*cos(theta)-(y2-refy)*sin(theta);
ay2=refy+(x2-refx)*sin(theta)+(y2-refy)*cos(theta);
ax3=refy+(x3-refx)*cos(theta)-(y3-refy)*sin(theta);
ay3=refy+(x3-refx)*sin(theta)+(y3-refy)*cos(theta);
ax4=refy+(x4-refx)*cos(theta)-(y4-refy)*sin(theta);
ay4=refy+(x4-refx)*sin(theta)+(y4-refy)*cos(theta);
rectangle(100,150,150,100);
line(ax1,ay1,ax2,ay2);
line(ax2,ay2,ax3,ay3);
line(ax3,ay3,ax4,ay4);
line(ax4,ay4,ax1,ay1);
}
Saturday, May 9, 2009
C program for 2D Transformations
Labels: Rotation, Scaling, Translation
Posted by Angad at 2:07 AM
Subscribe to:
Post Comments (Atom)
15 comments:
n you learn me about seo??
can u be a little clear?? coz that made no sense
i had gone through ur programs on computer graphics.. i am doing engineering in CS from Thiagarajar college of engineering..i couldnt use any of your program because all our lab and theory exams are over..
any how i look into all. i feel them as a complicated ones.. because some easy programs are made as complicated.. it will make both time and space complexity..and my request is to add comments 4 ur program.. not for each and every line but for some new default functions and for modules.. any how ur works is to be appreciated.. congrats.. well done..
very help full.!!!!Thanks a lot
thanx a ton...:)
it ws bullshit...!!! f u
yes vipul is right..f the program..
hey sushma sexy... i m also very helpful ... cn i fuck u,..@!!!!
hey ur dick is 2 small...i want angad's dick...it's just like a 2-D transformation..i want to rotate it my way..translate it my way..and scale it to maxm size..
abey sale siddharth chutiye .. tu badndh ho ja... dimag ki maa ben mat kar... let me fck her first...
sushma 1 no ki randi hai
i'm sorry but why it can't run on my code block?
Thank You very much.
For more PHP Programming Tutorials click.
regular expression regular definition cd
relocation linking concept
three dimensional display methods
Throw Keyword in Java
integrity constraints in dbms
canonical cover
8086 pin diagram
doubly linked list
Absolute Loaders
Storage allocation strategies
HTML Online Training
CSS Online Training
HTML5 Online Training
Selenium Online Training
Post a Comment