Rotating a 2 demential shape 30 degrees counter clockwise
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hello. I am new to the Matlab community and I was having a bit of trouble rotating an irregular 2 dimensional shape. The coordinates a x = [0 0 2 2 0 -2 -2 0] and y = [0 2 2 3 5 3 1 0]. I have to rotate this 30 degrees counter clockwise on the same axis. Any suggestions? Thanks
0 comentarios
Respuestas (1)
Alex
el 26 de Jul. de 2016
Editada: Alex
el 26 de Jul. de 2016
This should rotate the points 30 degrees. R is using the rotation matrix to update the pairs of x,y coordinates.
z = [x; y];
thetad = 30;
R =[cosd(thetad) -sind(thetad); sind(thetad) cosd(thetad)];
for i = 1: 8
z(:,i) = R * z(:,i);
end
plot(z(1,:),z(2,:))
Here's another post that does it a little differently: http://www.mathworks.com/matlabcentral/answers/296860-rotating-a-2d-shape?s_tid=answers_rc1-1_p1
1 comentario
Alex
el 27 de Jul. de 2016
You can also use makehgtform to get the rotation matrix, which could be useful if you needed to perform more transformations on the matrix at once. Just make sure you convert your degrees to radians.
Example:
z = [x;y];
M = makehgtform('zrotate', (pi/6));
for i = 1:8
z(:,i) = M(1:2,1:2) * z(:,i);
end
plot(z(1,:),z(2,:))
Here's some more info for working with makehgtform: http://www.mathworks.com/help/matlab/ref/makehgtform.html
Ver también
Categorías
Más información sobre Graphics Object Programming en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!