Filter löschen
Filter löschen

Rotating a 2 demential shape 30 degrees counter clockwise

3 Ansichten (letzte 30 Tage)
Shaan Ali
Shaan Ali am 25 Jul. 2016
Kommentiert: Alex am 27 Jul. 2016
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

Antworten (1)

Alex
Alex am 26 Jul. 2016
Bearbeitet: Alex am 26 Jul. 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,:))
  1 Kommentar
Alex
Alex am 27 Jul. 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

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Graphics Object Programming finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by