![]() |
|
|||||||
| Visual Basic & C++ All About VB and C++ |
Donation Goal
|
||||
| Goal amount for this month: 200 EUR, Received: 0 EUR (0%) |
|
Donate Now | ||
![]() |
|
|
LinkBack | Thread Tools | Display Modes |
|
|||
|
//TransFormation//
// SOFTWARE ENGINEERING 2006 FULL TIME // // UNIVERSITY OF TECHNOLOGY MAURITIUS // #include "Stdio.h" #include "conio.h" #include "math.h" #include "graphics.h" void intgraph(); void display_cordinate(char bg_color,char line_color); int Create_poly(int poly[][2]); void fill_poly(int poly[][2],int points,char line_color,char fill_color); void Identity(float Matrix[3][3]); void Translate_to_Relative(int poly[][2],int points,int Xdis,int Ydis); void main() { int poly[3][2],i,points,Xdis,Ydis; float Sx,Sy,Matrix[3][3],temp,Cos,Sin; char ch; intgraph(); setfillstyle(8,RED); points=Create_poly(poly); display_cordinate(DARKGRAY,WHITE); fill_poly(poly,points,WHITE,RED); getch(); Identity(Matrix); Xdis=0-poly[0][0]; Ydis=0-poly[0][1]; Translate_to_Relative(poly,points,Xdis,Ydis); Menu: restorecrtmode(); do { clrscr(); printf(" ================================"); printf(" 1. Scaling"); printf(" 2. Translation"); printf(" 3. Rotation"); printf(" 4. Reflection [ X axis ]"); printf(" 5. Reflection [ Y axis ]"); printf(" 6. Reflection [ X=Y axis ]"); printf(" 7. Draw "); printf(" 8. EXIT "); printf(" ================================"); printf(" Choose Ur Destiny:- "); ch=getche(); }while((ch<'1')||(ch>'8')); switch(ch) { case '1': printf(" Enter Scaling Ratio:- "); printf(" Sx:- "); scanf("%f",&Sx); printf(" Sy:- "); scanf("%f",&Sy); for(i=0;i<3;i++) { Matrix[i][0]=Matrix[i][0]*Sx; Matrix[i][1]=Matrix[i][1]*Sy; } goto Menu; case '2': printf(" Enter Translation [Relative]:- "); printf(" Tx:- "); scanf("%f",&Sx); printf(" Ty:- "); scanf("%f",&Sy); Matrix[2][0]=Matrix[2][0]+Sx; Matrix[2][1]=Matrix[2][1]+Sy; goto Menu; case '3': printf(" Enter Rotation Angle [Degree]:- "); scanf("%f",&Sx); Sx=(Sx*3.14)/180; Cos=cos(Sx); Sin=sin(Sx); for(i=0;i<=2;i++) { temp=Matrix[i][0]*Cos-Matrix[i][1]*Sin; Matrix[i][1]=Matrix[i][0]*Sin+Matrix[i][1]*Cos; Matrix[i][0]=temp; } goto Menu; case '4': Matrix[1][1]=Matrix[1][1]*-1; printf(" Done"); getch(); goto Menu; case '5': Matrix[0][0]=Matrix[0][0]*-1; printf(" Done"); getch(); goto Menu; case '6': Matrix[0][1]=1; Matrix[1][1]=1; printf(" Done"); getch(); goto Menu; case '7': for(i=0;i<=points;i++) { temp=poly[i][0]*Matrix[0][0]+poly[i][1]*Matrix[1][0]+Matrix[2][0]; poly[i][1]=poly[i][0]*Matrix[0][1]+poly[i][1]*Matrix[1][1]+Matrix[2][1]; poly[i][0]=temp; } case '8': getch(); // closegraph(); exit(0); } setgraphmode(2); display_cordinate(DARKGRAY,WHITE); Translate_to_Relative(poly,points,-Xdis,-Ydis); fill_poly(poly,points,CYAN,RED); getch(); restorecrtmode(); do { clrscr(); printf(" Do you Want to Switch to MENU [Y|N]:- "); ch=getche(); }while( (ch!='Y') && (ch!='N') ); if(ch=='Y') { Identity(Matrix); Xdis=0-poly[0][0]; Ydis=0-poly[0][1]; Translate_to_Relative(poly,points,Xdis,Ydis); goto Menu; } closegraph(); } void intgraph() { int g=DETECT,d; initgraph(&g,&d,"c:\tc\bgi"); } void fill_poly(int poly1[][2],int points,char line_color,char fill_color) { int pol[20],i; char str[2]; for(i=0;i<=points;i++) { pol[i*2]=poly1[i][0]; pol[i*2+1]=poly1[i][1]; } pol[i*2]=poly1[0][0]; pol[i*2+1]=poly1[0][1]; setcolor(line_color); setfillstyle(8,fill_color); fillpoly(points+1,pol); setcolor(fill_color); settextstyle(1,0,3); for(i=0;i<=points;i++) { sprintf(str,"%c",i+'a'); outtextxy(poly1[i][0],poly1[i][1],str); } } void Identity(float Matrix[3][3]) { int i,j; for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { if(i==j) Matrix[i][j]=1; else Matrix[i][j]=0; } } } int Create_poly(int poly[][2]) { poly[0][0]=200; poly[0][1]=20; poly[1][0]=300; poly[1][1]=150; poly[2][0]=130; poly[2][1]=280; return 2; } void display_cordinate(char bg_color,char line_color) { int i; setbkcolor(bg_color); setcolor(line_color); for(i=0;i<=640;i+=50) { line(i,0,i,480); } for(i=0;i<=480;i+=50) { line(0,i,640,i); } rectangle(0,0,639,479); } void Translate_to_Relative(int poly[][2],int points,int Xdis,int Ydis) { int i; for(i=0;i<=points;i++) { poly[i][0]=poly[i][0]+Xdis; poly[i][1]=poly[i][1]+Ydis; } } |
![]() |
| Bookmarks |
| Tags |
| programming , transformation |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| The Art of Multiprocessor Programming | neilbla | E-Book Download | 0 | 17th July 2008 17:39 |
| Programming Ebooks | mastercallisto | E-Book Download | 0 | 27th May 2008 20:02 |
| Programming C Third Edtion | elango87 | E-Book Download | 0 | 26th March 2008 19:56 |
| PHP 5 Power Programming | sip | Guest Downloads | 1 | 6th September 2007 04:59 |