Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //funkcja odpowiedzialna za tworzenie macierzy obrotu w osi Z
- function [RotZ]=calcRotZ(theta)
- RotZ = [cos(theta),-sin(theta),0,0; sin(theta),cos(theta),0,0; 0,0,1,0; 0,0,0,1]
- endfunction
- //funkcja odpowiedzialna za tworzenie macierzy przesunięcia w osi Z
- function [TransZ]=calcTransZ(d)
- TransZ = [1,0,0,0; 0,1,0,0; 0,0,1,d; 0,0,0,1]
- endfunction
- //funkcja odpowiedzialna za tworzenie macierzy przesunięcia w osi X
- function [TransX]=calcTransX(a)
- TransX = [1,0,0,a; 0,1,0,0; 0,0,1,0; 0,0,0,1]
- endfunction
- //funkcja odpowiedzialna za tworzenie macierzy obrotu w osi X
- function [RotX]=calcRotX(alfa)
- RotX = [1,0,0,0; 0,cos(alfa),-sin(alfa),0; 0,sin(alfa), cos(alfa),0; 0,0,0,1]
- endfunction
- //O1 liczenie macierzy pierwszego członu
- theta = (0 * %pi / 180) //zmienny kąt
- RotZ = calcRotZ(theta)
- TransZ = calcTransZ(290)
- RotX = calcRotX((%pi/2))
- O1 = RotZ * TransZ * RotX
- for i = -11:11
- //O2 drugiego członu
- theta = ((i*10) * %pi / 180) //zmienny kąt - zmienna z pętli powiększona o 10 dla przyspieszenia liczenia
- RotZ = calcRotZ(theta)
- TransX = calcTransX(270)
- O2 = RotZ * TransX
- disp(i);
- for j = -11:7
- //O3 trzeciego członu
- theta = ((j*10) * %pi / 180) //zmienny kąt
- RotZ = calcRotZ(theta)
- TransX = calcTransX(270)
- TransX2 = calcTransX(70)
- RotX = calcRotX((%pi/2))
- TransZ = calcTransZ(302)
- O3 = RotZ * TransX * TransX2 * RotX * TransZ
- for k = -12:12
- //O4 czwartego członu
- theta = ((k*10) * %pi / 180) //zmienny kąt
- RotZ = calcRotZ(theta)
- TransX = calcTransX(72)
- RotX = calcRotX((%pi/2))
- O4 = RotZ * TransX * RotX
- T = O1 * O2 * O3 * O4
- //disp(T)
- plot(T(1,4), T(3,4), '.')
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement