![0001 Screenshot.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/267863/0001%20Screenshot.png)
How to apply affine transformation or simple rotation on n points?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Muhammad Iqbal
el 24 de En. de 2020
Respondida: Image Analyst
el 24 de En. de 2020
Can any one help me to apply random rotation (from 1 degree to 360 degree) on the following points :
I tried the following option but failed to generate the rotation scenario.
theta =90;
R=[cosd(theta) -sind(theta) 0 ;
sind(theta) cosd(theta) 0;
0 0 1];
P= [ 0 0 0;
15 0 0;
30 0 0;
45 0 0;
60 0 0];
rotpoint =P*R;
0 comentarios
Respuesta aceptada
Image Analyst
el 24 de En. de 2020
Try it this way:
theta = 360 * rand;
rotationMatrix = [cosd(theta) -sind(theta) 0 ;
sind(theta) cosd(theta) 0;
0 0 1];
initialPoints = [ 0 0 0;
15 0 0;
30 0 0;
45 0 0;
60 0 0];
plot3(initialPoints(:, 1), initialPoints(:, 2), initialPoints(:, 3), 'b.', 'MarkerSize', 30);
hold on;
rotatedPoints = initialPoints * rotationMatrix
plot3(rotatedPoints(:, 1), rotatedPoints(:, 2), rotatedPoints(:, 3), 'r.', 'MarkerSize', 30);
grid on;
xlabel('X', 'FontSize', 20);
ylabel('Y', 'FontSize', 20);
zlabel('Z', 'FontSize', 20);
caption = sprintf('The initial points have been rotated by %.2f degrees', theta);
title(caption, 'FontSize', 20);
legend('Initial', 'Rotated');
![0001 Screenshot.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/267863/0001%20Screenshot.png)
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Specialized Messages en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!