Advertisement
Guest User

jebemtimater

a guest
Jan 25th, 2017
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scilab 1.33 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(655)
  21. RotX = calcRotX((%pi/2))
  22. O1 = RotZ * TransZ * RotX
  23.  
  24. for i = 0:15
  25.  
  26.     //O2
  27.     theta = ((i*10) * %pi / 180) //zmienny kąt
  28.     RotZ = calcRotZ(theta)
  29.     TransX = calcTransX(1200)
  30.     O2 = RotZ * TransX
  31.     disp(i);
  32.     for j = -15:0
  33.        
  34.     //O3
  35.         theta = ((j*10) * %pi / 180) //zmienny kąt
  36.         RotZ = calcRotZ(theta)
  37.     TransX = calcTransX(300)
  38.     RotX = calcRotX((%pi/2))
  39.     TransZ = calcTransZ(655)
  40.         O3 = RotZ * TransX * RotX * TransZ
  41.  
  42.         //O4
  43.         theta = (0 * %pi / 180) //zmienny kąt
  44.         RotZ = calcRotZ(theta)
  45.         TransX = calcTransX(300)
  46.         RotX = calcRotX((%pi/2))
  47.         TransZ = calcTransZ(655)
  48.         O4 = RotZ * TransX * RotX * TransZ
  49.        
  50.         T = O1 * O2 * O3 * O4
  51.         //disp(T)
  52.        
  53.         plot(T(1,4), T(3,4), '.')
  54.        
  55.     end
  56. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement