Solved

Posted on 2008-10-09

Hello Experts,

I have the following code which shows the rotation of a 2D polygon and what i want is to modify it using a compound matrix transformation so that the square rotates about an arbitrary point.

Can anyone help me how can i do such a thing ??

Thanks in advance

I have the following code which shows the rotation of a 2D polygon and what i want is to modify it using a compound matrix transformation so that the square rotates about an arbitrary point.

Can anyone help me how can i do such a thing ??

Thanks in advance

```
close all;
clear all;
% a 2D pologyon
p=[-1 1 1 -1 -1 ; -1 -1 1 1 -1];
% points p = in homogeneous coord
p(3,:)=1;
% axes for plotting the animation
figure;
hold on;
axis([-6 6 -6 6]);
axis equal;
for theta=0:0.005:2*pi
R=[cos(theta) -sin(theta) 0 ; sin(theta) cos(theta) 0 ; 0 0 1];
pdash=R*p;
pdash(1,:)=pdash(1,:)./pdash(3,:);
pdash(2,:)=pdash(2,:)./pdash(3,:);
cla;
plot(pdash(1,:),pdash(2,:),'b');
drawnow;
end
```

3 Comments

Comment Utility

perdoname_,

Here you are the modified code:

You can learn more here:

Transforming Objects - MATLAB

Here you are the modified code:

You can learn more here:

Transforming Objects - MATLAB

```
function rotsquare
close all;
clear all;
% a 2D pologyon
p=[-1 1 1 -1 -1 ; -1 -1 1 1 -1];
% points p in XY plane
p(3,:)=0;
% points p = in homogeneous coord
p(4,:)=1;
% axes for plotting the animation
figure;
hold on;
axis([-6 6 -6 6]);
axis equal;
%Rotate about the upper right corner (1,1)
Tx1 = makehgtform('translate',[-1 -1 0]);
Tx2 = makehgtform('translate',[ 1 1 0]);
for theta=0:0.005:2*pi
R=makehgtform('zrotate',theta);
pdash=Tx2*R*Tx1*p;
cla;
plot(pdash(1,:),pdash(2,:),'b');
drawnow;
end
```

Title | # Comments | Views | Activity |
---|---|---|---|

drawing animated level bar based on numbers | 3 | 71 | |

Permutation and Combination | 9 | 45 | |

Calculating Probability | 18 | 61 | |

hardness of water, iron in it, and effect on humans.. | 6 | 33 |

Join the community of 500,000 technology professionals and ask your questions.

Connect with top rated Experts

**10** Experts available now in Live!