Advertisement
Guest User

Untitled

a guest
Jan 25th, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scilab 1.35 KB | None | 0 0
  1. function [RotZ]=calcRotZ(theta)
  2.     RotZ = [cos(theta),-sin(theta),0,0; sin(theta),cos(theta),0,0; 0,0,1,0; 0,0,0,1]
  3. endfunction
  4.  
  5. function [TransZ]=calcTransZ(d)
  6.     TransZ = [1,0,0,0; 0,1,0,0; 0,0,1,d; 0,0,0,1]
  7. endfunction
  8.  
  9. function [TransX]=calcTransX(a)
  10.     TransX = [1,0,0,a; 0,1,0,0; 0,0,1,0; 0,0,0,1]
  11. endfunction
  12.  
  13. function [RotX]=calcRotX(alfa)
  14.     RotX = [1,0,0,0; 0,cos(alfa),-sin(alfa),0; 0,sin(alfa), cos(alfa),0; 0,0,0,1]
  15. endfunction
  16.  
  17. //O1
  18. theta = (0 * %pi / 180) //zmienny kąt
  19. RotZ = calcRotZ(theta)
  20. TransZ = calcTransZ(290)
  21. RotX = calcRotX((%pi/2))
  22. O1 = RotZ * TransZ * RotX
  23.  
  24. for i = -11:11
  25.  
  26.     //O2
  27.     theta = ((i*10) * %pi / 180) //zmienny kąt
  28.     RotZ = calcRotZ(theta)
  29.     TransX = calcTransX(270)
  30.     O2 = RotZ * TransX
  31.     disp(i);
  32.  
  33.     for j = -11:7
  34.        
  35.     //O3
  36.         theta = ((j*10) * %pi / 180) //zmienny kąt
  37.         RotZ = calcRotZ(theta)
  38.     TransX = calcTransX(270)
  39.     TransX2 = calcTransX(70)
  40.     RotX = calcRotX((%pi/2))
  41.     TransZ = calcTransZ(302)
  42.    
  43.         O3 = RotZ * TransX * TransX2 * RotX * TransZ
  44.  
  45.     for j = -12:12
  46.  
  47.         //O4
  48.         theta = (0 * %pi / 180) //zmienny kąt
  49.         RotZ = calcRotZ(theta)
  50.         TransX = calcTransX(72)
  51.         RotX = calcRotX((%pi/2))
  52.         O4 = RotZ * TransX * RotX
  53.        
  54.         T = O1 * O2 * O3 * O4
  55.         //disp(T)
  56.        
  57.         plot(T(1,4), T(3,4), '.')
  58.        
  59.     end
  60. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement