Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %5
- %#####
- function AXspin(matrix,vector)
- center = [mean(matrix(1:end-1,1)),mean(matrix(1:end1,2)),mean(matrix(1:end-1,3))];
- a = vector(1);
- b = vector(2);
- c = vector(3);
- d = sqrt((b*b)+(c*c));
- T = eye(4);
- for i=1:3
- T(4,i) = -center(i);
- end
- Rx = eye(4);
- Rx(2,2) = c/d;
- Rx(2,3) = b/d;
- Rx(3,2) = -b/d;
- Rx(3,3) = c/d;
- Ry = eye(4);
- Ry(1,1) = d;
- Ry(1,3) = a;
- Ry(3,1) = -a;
- Ry(3,3) = d;
- Rz = eye(4);
- Rz(1,1) = c/d;
- Rz(2,1) = b/d;
- Rz(1,2) = -b/d;
- Rz(2,2) = c/d;
- Tminus = inv(T);
- RxMinus = inv(Rx);
- RyMinus = inv(Ry);
- Ro = T*Rx*Ry*Rz*RyMinus*RxMinus*Tminus;
- figure
- drawPlots(matrix);
- hold on;
- scatter3(center(1),center(2),center(3));
- scatter3(center(1),b,center(3));
- plot3([center(1),center(1)],[center(2),b],[center(3),center(3)],'r');
- matrix = matrix*Ro;
- drawPlots(matrix);
- hold off;
- end
- %7
- %#######
- function transformation(matrix)
- center = [mean(matrix(1:end-1,1)),mean(matrix(1:end1,2)),mean(matrix(1:end-1,3))];
- T = eye(4);
- Tminus = eye(4);
- for i=1:3
- T(4,i) = center(i);
- Tminus(4,i) = -center(i);
- end
- S = [0.5,0.5,0.5,0];
- figure
- drawPlots(matrix);
- hold on;
- matrix = matrix * T;
- vector = eye(4);
- for i=1:3
- vector_two(4,i) = center(i);
- end
- matrix = matrix*vector;
- matrix = matrix.*S;
- OX = eye(4);
- angle = degtorad(30);
- OX(2,2) = cos(angle);
- OX(2,3) = sin(angle);
- OX(3,2) = -sin(angle);
- OX(3,3) = cos(angle);
- matrix = matrix * OX;
- matrix = matrix * Tminus;
- drawPlots(matrix);
- hold off;
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement