90° clockwise rotation of 2D coordinates
26 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Alberto Acri
el 16 de Dic. de 2022
Hi. I cannot understand why the 90° clockwise rotation of the attached 2D coordinates (matrix.txt) is not done.
I have tried two different ways but I do not get the desired result.
1st way (using "rot90"):
matrix = importdata('matrix.txt');
Rmatrix = rot90(matrix,3); % I have to rotate 3 times 90° counterclockwise
figure
plot(Rmatrix(1,:), Rmatrix(2,:), 'k.')
axis equal
xlim([0 512]);
ylim([0 512]);
2nd way (using rotation matrix, more convenient):
matrix = importdata('matrix.txt');
theta = 90;
R = [cos(theta) -sin(theta); sin(theta) cos(theta)];
Rmatrix = R*matrix';
figure
plot(Rmatrix(1,:), Rmatrix(2,:), 'k.')
axis equal
xlim([0 512]);
ylim([0 512]);
2 comentarios
Adam Danz
el 16 de Dic. de 2022
As @Voss mentioned, rot90 rotates the array of data. Look how this 4x3 matrix turns into a 3x4 matrix and the top row moves to the first column and it gets fliped as if you moved your monitor 90deg counter clockwise.
x = randi(9,4,3)
rot90(x)
What is the problem with your second method using the rotation matrix?
Respuesta aceptada
Matt J
el 17 de Dic. de 2022
Editada: Matt J
el 17 de Dic. de 2022
2nd way (using rotation matrix, more convenient):
Your implementation of this has several problems:
- You try to rotate by 90 degrees once, instead of 3 times
- Your rotation angle theta is expressed in degrees instead of radians
- You are rotating about the origin, which means the rotated coordinates cannot lie in the range [0,512].
Here's what you might have intended:
matrix = importdata('matrix.txt');
theta = 90*3;
R = [cosd(theta) -sind(theta); sind(theta) cosd(theta)];
c=mean(matrix,1);
Rmatrix = (matrix-c)*R'+c;
plot(matrix(:,1), matrix(:,2), 'k.'); hold on
plot(Rmatrix(:,1), Rmatrix(:,2), 'r.'); hold off
axis equal
0 comentarios
Ver también
Categorías
Más información sobre Interactions, Camera Views, and Lighting 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!



