Write a program of Translation, Rotation, and Scaling using Composite Transformation.

 

Write a program of Translation, Rotation, and Scaling using Composite Transformation.

  1. #include<stdio.h>  
  2. #include<conio.h>  
  3. #include<graphics.h>  
  4. #include<math.h>  
  5. int x1,y1,x2,y2,x3,y3,a,b;  
  6. void draw();  
  7. void rotate();  
  8. int main(void)  
  9. {  
  10. int gd=DETECT,gm;  
  11. initgraph(&gd,&gm,"C:\\TC\\BGI");  
  12. printf("Enter first co-ordinate value for triangle:");  
  13. scanf("%d%d",&x1,&y1);  
  14. printf("Enter second co-ordinatevalues for triangle:");  
  15. scanf("%d%d",&x2,&y2);  
  16. printf("Enter third co-ordinate valuesfor triangle:");  
  17. scanf("%d%d",&x3,&y3);  
  18. draw();  
  19. getch();  
  20. rotate();  
  21. getch();  
  22.   
  23. return 0;  
  24. }  
  25.   
  26. void draw()  
  27. {  
  28.   line(x1,y1,x2,y2);  
  29.   line(x2,y2,x3,y3);  
  30.   line(x3,y3,x1,y1);  
  31. }  
  32.  void rotate()  
  33.  {  
  34.     int a1,a2,a3,b1,b2,b3;  
  35.     float angle;  
  36.     printf("Enter the rotation angle co-ordinates:");  
  37.     scanf("%f",&angle);  
  38.     cleardevice();  
  39.       angle=(angle*3.14)/180;  
  40.       a1=a+(x1-a)*cos(angle)-(y1-b)*sin(angle);  
  41.       b1=b+(x1-a)*sin(angle)+(y2-b)*cos(angle);  
  42.       a2=a+(x2-a)*cos(angle)-(y1-b)*sin(angle);  
  43.       b2=b+(x2-a)*sin(angle)+(y2-b)*cos(angle);  
  44.       a3=a+(x3-a)*cos(angle)-(y1-b)*sin(angle);  
  45.       b3=b+(x3-a)*sin(angle)+(y2-b)*cos(angle);  
  46.       printf("ROTATION");  
  47.       printf("\n Changed coordinates\n");  
  48.       printf("%d %d\n%d %d\n%d %d",a1,b1,a2,b2,a3,b3);  
  49.     line(a1,b1,a2,b2);  
  50.     line(a2,b2,a3,b3);  
  51.     line(a3,b3,a1,b1);  
  52.  }  

Output


Computer Graphics Programs
Computer Graphics Programs












Post a Comment

Previous Post Next Post