Advertisement
Guest User

Untitled

a guest
Apr 25th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.44 KB | None | 0 0
  1. %5
  2. %#####
  3.  
  4. function AXspin(matrix,vector)
  5. center = [mean(matrix(1:end-1,1)),mean(matrix(1:end1,2)),mean(matrix(1:end-1,3))];
  6. a = vector(1);
  7. b = vector(2);
  8. c = vector(3);
  9. d = sqrt((b*b)+(c*c));
  10. T = eye(4);
  11.  for i=1:3
  12.  T(4,i) = -center(i);
  13.  end
  14. Rx = eye(4);
  15. Rx(2,2) = c/d;
  16. Rx(2,3) = b/d;
  17. Rx(3,2) = -b/d;
  18. Rx(3,3) = c/d;
  19. Ry = eye(4);
  20. Ry(1,1) = d;
  21. Ry(1,3) = a;
  22. Ry(3,1) = -a;
  23. Ry(3,3) = d;
  24. Rz = eye(4);
  25. Rz(1,1) = c/d;
  26. Rz(2,1) = b/d;
  27. Rz(1,2) = -b/d;
  28. Rz(2,2) = c/d;
  29. Tminus = inv(T);
  30. RxMinus = inv(Rx);
  31. RyMinus = inv(Ry);
  32. Ro = T*Rx*Ry*Rz*RyMinus*RxMinus*Tminus;
  33. figure
  34. drawPlots(matrix);
  35. hold on;
  36. scatter3(center(1),center(2),center(3));
  37. scatter3(center(1),b,center(3));
  38. plot3([center(1),center(1)],[center(2),b],[center(3),center(3)],'r');
  39. matrix = matrix*Ro;
  40. drawPlots(matrix);
  41. hold off;
  42. end
  43.  
  44.  
  45. %7
  46. %#######
  47. function transformation(matrix)
  48. center = [mean(matrix(1:end-1,1)),mean(matrix(1:end1,2)),mean(matrix(1:end-1,3))];
  49. T = eye(4);
  50. Tminus = eye(4);
  51.  for i=1:3
  52.  T(4,i) = center(i);
  53.  Tminus(4,i) = -center(i);
  54.  end
  55. S = [0.5,0.5,0.5,0];
  56. figure
  57. drawPlots(matrix);
  58. hold on;
  59. matrix = matrix * T;
  60. vector = eye(4);
  61.  for i=1:3
  62.  vector_two(4,i) = center(i);
  63.  end
  64. matrix = matrix*vector;
  65. matrix = matrix.*S;
  66. OX = eye(4);
  67. angle = degtorad(30);
  68. OX(2,2) = cos(angle);
  69. OX(2,3) = sin(angle);
  70. OX(3,2) = -sin(angle);
  71. OX(3,3) = cos(angle);
  72. matrix = matrix * OX;
  73. matrix = matrix * Tminus;
  74. drawPlots(matrix);
  75. hold off;
  76. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement